2017-09-21 2 views
0

Ich habe eine ASP.NET Core-Webanwendung mit einer API, die die Authentifizierung von Benutzern erfordert. Vor ungefähr einem Monat wurde mir klar, dass ich das Postman-API-Tool nicht mehr verwenden konnte, denn obwohl ich authentifiziert bin, erhielten meine API-Aufrufe eine Antwort, als ob ich nicht authentifiziert wäre.Identifizieren von Cookies

Wenn ich die verfügbaren Cookies unter der Registerkarte Cookies sehe, sehe ich vier von ihnen. Ich erkenne, einer von ihnen, aber nicht die anderen 3.

Die Cookies Ich bin in der Registerkarte "Cookies" in Postman zu sehen, während API-Aufrufe zu machen sind:

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

Alle vier Cookies meine Domain zeigen. Der einzige Unterschied, den ich bemerkt habe, ist, dass der zweite Cookie mydomain.com zeigt, während andere .mydomain.com zeigen. Ich erkenne den zweiten, weil ich meinen Cookie z. B. my_cookie nenne. Das ist auch der größte, der auch Sinn macht, weil ich einige Informationen im Cookie abspeichere. Ich nehme an, .AspNetCore Präfix wird von meiner App hinzugefügt, weil es eine ASP.NET Core Web App mit API ist.

Was sind die anderen drei Cookies? Brauche ich sie? Die andere wichtige Sache, die ich bemerkt habe, ist, dass, wenn ich Fiddler verwende, um meinen API-Aufruf zu überprüfen, sehe ich unter "Cookies" in Fiddler nur die Baum-Cookies, die ich nicht mit dem API-Aufruf identifizieren konnte . Ich sehe NICHT den, den ich an meiner Site erkenne.

Sieht so aus, als ob meine Probleme mit Postman etwas mit diesen drei nicht identifizierten Cookies zu tun haben, die mit dem API-Aufruf gesendet werden, aber nicht dem, den ich ausstelle, d. H. .AspNetCore.my_cookie wird NICHT mit meinem API-Aufruf gesendet.

Antwort

1

_ga und _gid werden verwendet, um Google Analytics-Daten zu sammeln.

Namen - Ablaufzeit - Beschreibung

_gid - 24 Stunden - Gebrauchte Benutzer zu unterscheiden.

_gat - 1 Minute - Wird verwendet, um die Anforderungsrate zu drosseln.

wenn Sie mehr über Google Analytics Cookies erfahren möchten, wenden Sie sich bitte read this

In der anderen Seite für ARRAffinity. Windows Azure-Websites verwenden standardmäßig ein ARRAffinity-Cookie, um sicherzustellen, dass nachfolgende Anforderungen eines Benutzers an die Websiteinstanz weitergeleitet werden, mit der der Benutzer ursprünglich verbunden war. Mit anderen Worten, Windows Azure-Websites gehen davon aus, dass Ihre Website nicht zustandslos ist. Wenn Sie Ihre Website-Bereitstellung auf mehrere Instanzen skalieren möchten, verarbeitet der ARR-Server dieses ARR Affinity-Cookie und sendet Sie zurück an die Instanz, die Ihre ursprüngliche Anfrage (die Anfrage, die den Cookie ausgelöst hat) verarbeitet hat.

Wenn Sie dies noch nicht wissen, finden Sie unter this blog eine ausführliche Diskussion über ARR Affinity für Websites und wie ARR Affinity deaktiviert werden kann, wenn Ihre Website zustandslos ist.

+0

Vielen Dank für die detaillierte Erklärung. Irgendeine Idee, warum der Cookie, den meine Site ausgibt, nicht mit dem API-Aufruf gesendet wird? Sieht so aus, als ob alle anderen Cookies mit dem API-Aufruf gesendet werden. – Sam

+0

Interessanterweise habe ich keine Probleme bei allen Anrufen über den Browser. Alle meine Front-End-Anrufe werden gut beantwortet. Postman sendet irgendwie nicht den Cookie, den meine App benötigt, um auf API-Aufrufe zu reagieren. – Sam

+0

Ich weiß nicht, was passieren könnte, aber ich fand einen interessanten Link über Postbote und Cookies. https://www.getpostman.com/docs/postman/sending_api_requests/cookies und vielleicht überprüfen Sie diesen Beitrag in stackoverflow https://stackoverflow.com/questions/30890403/sending-cookies-with-postman –