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

相關問題