Frage

Während mit ASP.Net Arbeits Authentication Forms stieß ich auf das .ASPXAUTH Cookie. Ich habe ein paar Fragen:

  • Was ist der Zweck dieses Cookie?
  • Was die Lage dieses Cookie?
War es hilfreich?

Lösung

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

Was die Lage des Cookies, die auf Ihrem Browser abhängt. Wenn Sie Firefox verwenden, können Sie das Cookie, indem Sie auf Extras Ansicht -> Einstellungen -> Datenschutz. Blättern Sie dann auf die Domäne nach unten und erweitern sie das Cookie und seinen Wert zu sehen. Der Wert wird verschlüsselt, um die Maschine Schlüssel (befindet sich in der machine.config des Servers oder web.config-Datei) so auf den Cookie auf dem Client sucht, wird nicht wirklich Sie keine Informationen zur Verfügung stellen. Sie können den Wert auf der Serverseite entschlüsseln / betrachten:

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

wo authTicket hat diese Felder:

eingeben Bild Beschreibung hier

Die Aussage „ASPXAUTH ist im Grunde ASP.NET-Sitzungszustand verwendet zu halten“ ist falsch. ASP.NET gibt eine ganz andere Cookie namens ASP.NET_SessionId, Sitzungsstatus zu verfolgen.

Andere Tipps

Eigentlich ist das .ASPXAUTH Cookie nicht genau sagen, wenn der Benutzer wirklich authentifiziert ist. Wenn sich der Benutzer anmeldet aus der App wird die .ASPXAUTH Cookie aus dem Browser entfernt. Wenn Sie jedoch innerhalb kurzer Zeit auf die Website gehen zurück (mit Timeout von Form Auth Cookie), und bearbeiten Sie den neuen ASP.NET_SessionId-Cookie mit dem folgenden:

  • ändern "name" -Feld von "ASP.NET_SessionId" auf ".ASPXAUTH"
  • Änderung "Wert" von 24 char sessionID zu alt 448 char Authentifizierungszeichenfolge

Nach dem Refresh können Sie die Identität des authentifizierten Benutzers anzunehmen, ohne technisch wieder neu zu authentifizieren. (Wieder vorausgesetzt, Sie tun dies im specificied Timeout innerhalb des .ASPXAUTH verschlüsselten Auth String gespeichert)

Eine gute Blog erklärt das Problem ausführlicher. Eine mögliche Lösung ist die .ASPXAUTH mit der ASP-Sitzung zu koppeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top