3

我经历的https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-dotnet-backend-how-to-use-server-sdkAzure的移动应用重定向HTTP POST调用时启用Azure中的Active Directory身份验证以获取

发现Azure的移动应用后端教程的.NET部分我把一切都建立很好地与默认示例TodoItemController。通过在PostToDoItem控制器方法中添加代码,我添加了推送通知作为instructed

我然后测试使用邮差和投入简单的新项目POST电话:enter image description here

一旦我得到一个成功的推送通知我Xamarin.Forms移动应用程序:

enter image description here

但是,当我在移动应用程序服务中启用Azure Active Directory身份验证时,在“允许匿名请求(无操作)”的情况下,我不能再向Postman发送POST呼叫。更具体地说,它看起来像应用程序服务收到POST请求,但立即重定向它,而不是产生一个GET请求。这会导致控件中的GetAllToDoItems方法被调用,而不是PostToDoItem方法。我看到这个日志流:

> 2017-05-31T01:33:46 PID[4292] Verbose  Received request: POST 
> http://XYZ.azurewebsites.net/tables/TodoItem?ZUMO-API-VERSION=2.0.0 
> 2017-05-31T01:33:46 PID[4292] Information Redirecting: 
> https://XYZ.azurewebsites.net/tables/TodoItem?ZUMO-API-VERSION=2.0.0 
> 2017-05-31T01:33:46 PID[4292] Verbose  Received request: GET 
> https://XYZ.azurewebsites.net/tables/TodoItem?ZUMO-API-VERSION=2.0.0 
> 2017-05-31T01:33:46 PID[4292] Verbose  [Routes(Preview)] No 
> authorization configuration was found. 2017-05-31T01:33:46 PID[4292] 
> Information Request, Method=GET, 
> Url=https://XYZ.azurewebsites.net/tables/TodoItem?ZUMO-API-VERSION=2.0.0, 
> Message='https://XYZ.azurewebsites.net/tables/TodoItem?ZUMO-API-VERSION=2.0.0' 
> 2017-05-31T01:33:46 PID[4292] Information Message='TodoItem', 
> Operation=DefaultHttpControllerSelector.SelectController 
> 2017-05-31T01:33:46 PID[4292] Information 
> Message='XYZService.Controllers.TodoItemController', 
> Operation=DefaultHttpControllerActivator.Create 2017-05-31T01:33:46 
> PID[4292] Information 
> Message='XYZService.Controllers.TodoItemController', 
> Operation=HttpControllerDescriptor.CreateController 
> 2017-05-31T01:33:46 PID[4292] Information Message='Selected action 
> 'GetAllTodoItems()'', 
> Operation=ApiControllerActionSelector.SelectAction 

我已经期待POST调用的工作方式相同,因为我对Azure的时候匿名请求进来不采取任何行动,当我有应用服务的身份验证设置为OFF我在这里误解了什么?提前致谢!

回答

3

后,我们使该应用服务的认证/授权,如果我们发送使用HTTP协议的请求,服务器将它通过302响应重定向到HTTPS

,使其在这种情况下,则可以使用HTTPS协议而不是HTTP 发送请求。如果您启用允许匿名请求(无操作)功能,这应该工作。

+0

非常感谢!我一直在考虑这个问题,直到我经历这些步骤时,我甚至没有注意到我使用的是HTTP而不是HTTPS! – Rowbear

相关问题