3

Je vais à travers les parties .NET des tutoriels back-end Mobile App Azure trouvé que je suis tout est configuré à https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-dotnet-backend-how-to-use-server-sdkAzure Mobile App redirigeant Http POST appelle GET lorsque Azure authentification Active Directory est activé

bien avec la valeur par défaut exemple TodoItemController. J'ai ajouté des notifications push comme instructed en ajoutant du code à la méthode de contrôleur PostToDoItem.

J'ai ensuite testé l'appel POST en utilisant Postman et mettre dans un simple nouvel élément: enter image description here

où je reçois une notification push réussie dans mes Xamarin.Forms application mobile:

enter image description here

Toutefois, lorsque j'active l'authentification Azure Active Directory dans mon service d'application mobile tout en laissant "Autoriser les demandes anonymes (aucune action)", je ne peux plus envoyer d'appel POST à ​​Postman. Plus précisément, il semble que le service App reçoive la requête POST, mais la redirige immédiatement et génère une requête GET à la place. Cela provoque l'appel de la méthode GetAllToDoItems dans le contrôleur à la place de la méthode PostToDoItem. Je vois cela dans le flux de journal:

> 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 

J'ai attendu cet appel POST pour travailler la même chose que lorsque j'ai App service d'authentification sur OFF depuis que je l'ai dit Azure à ne prendre aucune mesure lorsque les demandes anonymes viennent Suis-je mal compris quelque chose ici? Merci d'avance!

Répondre

3

Après activer l'authentification/autorisation pour le service d'application, si nous envoyons la demande en utilisant le protocole HTTP , le serveur rediriger vers HTTPS via 302 réponse.

Pour le faire fonctionner dans ce scénario, vous pouvez envoyer la demande à l'aide du HTTPS protocole au lieu de HTTP. Cela devrait fonctionner si vous activez la fonctionnalité Autoriser les demandes anonymes (aucune action).

+0

Merci beaucoup! Je regardais cela depuis si longtemps que je n'ai même pas remarqué que j'utilisais HTTP au lieu de HTTPS pendant que je suivais les étapes! – Rowbear