it-swarm.com.de

was ist ASPXAUTH-Cookie?

Bei der Arbeit mit der ASP.Net Forms-Authentifizierung bin ich auf das .ASPXAUTH-Cookie gestoßen. Ich habe ein paar Fragen:

  • Was ist der Zweck dieses Cookies?
  • Wo befindet sich dieser Cookie?
68
balaweblog

Das ASPXAUTH-Cookie wird verwendet, um festzustellen, ob ein Benutzer authentifiziert ist. 

Der Ort des Cookies hängt von Ihrem Browser ab. Wenn Sie Firefox verwenden, können Sie das Cookie anzeigen, indem Sie auf Extras -> Optionen -> Datenschutz klicken. Scrollen Sie dann zur Domäne und erweitern Sie sie, um den Cookie und seinen Wert anzuzeigen. Der Wert wird mithilfe des Computerschlüssels (in der Datei machine.config des Servers oder in der Datei web.config des Servers) verschlüsselt. Wenn Sie also das Cookie auf dem Client anzeigen, erhalten Sie keine Informationen. Sie können den Wert auf der Serverseite entschlüsseln/anzeigen mit:

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];//.ASPXAUTH
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

wobei authTicket diese Felder hat:

enter image description here

Die Anweisung "ASPXAUTH wird grundsätzlich zum Verwalten des ASP.NET-Sitzungszustands verwendet" ist falsch. ASP.NET gibt ein völlig anderes Cookie namens ASP.NET_SessionId aus, um den Sitzungsstatus zu verfolgen.

77
Todd

Das .ASPXAUTH-Cookie teilt Ihnen nicht genau mit, wann der Benutzer wirklich authentifiziert wird. Wenn sich der Benutzer von der App abmeldet, wird das .ASPXAUTH-Cookie aus dem Browser entfernt. Wenn Sie jedoch innerhalb kurzer Zeit wieder zur Website gelangen (mit Timeout des Form-Auth-Cookies), und bearbeiten Sie das neue ASP.NET_SessionId-Cookie mit folgendem Code:

  • feld "Name" von "ASP.NET_SessionId" in ".ASPXAUTH" ändern
  • Ändern Sie den "Wert" von 24 Char SessionID in die alte 448 Char-Authentifizierungszeichenfolge

Nach dem Aktualisieren können Sie die Identität des authentifizierten Benutzers annehmen, ohne sich technisch erneut authentifizieren zu müssen. (wiederum unter der Voraussetzung, dass Sie dies innerhalb der angegebenen Zeit tun, die in der .ASPXAUTH-verschlüsselten Authentifizierungszeichenfolge gespeichert ist)

Ein guter Blog Beitrag erklärt das Problem genauer. Eine mögliche Lösung besteht darin, den .ASPXAUTH mit der Sitzung ASP zu koppeln.

8
Robert

Wenn die Interaktion eines Benutzers mit der HTML-Anmelde-URL dem TSWPP-Server die Identifizierung der Benutzer ermöglicht hat, SOLLTE der Remote-Server ein Cookie generieren, das den Benutzer identifiziert und die Authentifizierung beim Server ermöglicht. Der Inhalt des Cookies sollte signiert und verschlüsselt werden. Die spezifische Implementierung dieses Cookies einschließlich der Signatur- und Verschlüsselungsalgorithmen hängt von der Implementierung des TSWPP-Servers ab, da nur der Server den Inhalt des Cookies parsen muss. Wenn der Server das Cookie implementiert, MUSS das Cookie in einer HTTP-Nutzlast mit dem Inhaltstyp "application/x-msts-webfeed-login" zurückgegeben werden.

http://msdn.Microsoft.com/de-de/library/ee920427.aspx

0
Cruiser KID