2017-09-21 11 views
0

J'ai une application Web ASP.NET Core avec une API qui nécessite l'authentification des utilisateurs. Il y a environ un mois, j'ai réalisé que je ne pouvais plus utiliser l'outil API Postman car même si je suis authentifié, mes appels API recevraient une réponse comme si je n'étais pas authentifié.Identification des cookies

Lorsque je regarde les cookies disponibles sous l'onglet cookies, j'en vois quatre. Je reconnais l'un d'entre eux, mais pas l'autre 3.

Les biscuits que je vois dans la rubrique "cookies" onglet Postman tout en faisant des appels API sont:

  1. ARRAffinity
  2. .AspNetCore.my_cookie
  3. _ga
  4. _gid

Les quatre témoins montrent mon domaine. La seule différence que j'ai remarqué est que le deuxième cookie montre mydomain.com tandis que d'autres montrent .mydomain.com. Je reconnais le second parce que je nomme mon cookie, c'est-à-dire my_cookie. Celui-ci est aussi le plus grand qui a aussi du sens car je stocke certaines informations dans le cookie. Je suppose, .AspNetCore préfixe est ajouté par mon application, car il s'agit d'une application Web ASP.NET Core avec API.

Quels sont les trois autres cookies? Ai-je besoin d'eux? L'autre chose importante que j'ai remarqué est que lorsque j'utilise Fiddler pour inspecter mon appel API, sous l'onglet "Cookies" dans Fiddler, je ne vois que les cookies de l'arbre que je n'ai pas pu identifier avec l'API . Je ne vois pas celui que je reconnais qui est publié par mon site.

On dirait que mes problèmes avec Postman ont quelque chose à voir avec ces trois cookies non identifiés étant envoyés avec l'appel d'API, mais pas celui que j'émets, c'est-à-dire .AspNetCore.my_cookie n'est PAS envoyé avec mon appel d'API.

Répondre

1

_ga et _gid sont utilisés pour collecter des données Google Analytics.

Nom - Heure d'expiration - Description de

_gid - 24 heures - utilisées pour distinguer les utilisateurs.

_gat - 1 minute - Utilisé pour le taux de demande des gaz.

si vous voulez en savoir plus sur les cookies Google Analytics, s'il vous plaît read this

En revanche, pour ARRAffinity. Par défaut, les sites Web Windows Azure utilisent un cookie ARRAffinity pour s'assurer que les demandes ultérieures d'un utilisateur sont renvoyées vers l'instance de site Web à laquelle l'utilisateur s'est initialement connecté. En d'autres termes, les sites Web Windows Azure supposent que votre site Web n'est pas apatride. Si vous planifiez le déploiement de votre site Web sur plusieurs instances, le serveur ARR traite ce cookie d'affinité ARR et vous renvoie à l'instance qui a traité votre demande initiale (la requête à l'origine du cookie).

Si vous n'êtes pas déjà familier avec ceci, consultez this blog pour une discussion approfondie sur ARR Affinity pour les sites Web et comment désactiver ARR Affinity si votre site Web est apatride.

+0

Merci pour l'explication détaillée. Toute idée de pourquoi le cookie de mon site n'est pas envoyé avec l'appel de l'API? On dirait que tous les autres cookies sont envoyés avec l'appel de l'API. – Sam

+0

Fait intéressant, je n'ai aucun problème dans tous les appels effectués via le navigateur. Tous mes appels frontaux sont bien répondu. Postman n'envoie pas le cookie nécessaire à mon application pour répondre aux appels d'API. – Sam

+0

Je ne sais pas ce qui pourrait arriver mais j'ai trouvé un lien intéressant sur le facteur et les cookies. https://www.getpostman.com/docs/postman/sending_api_requests/cookies et peut-être vérifier ce post dans stackoverflow https://stackoverflow.com/questions/30890403/sending-cookies-with-postman –