Löschen des Authentifizierungs- / Sitzungscookies nach dem Schließen des Browsers
Was sind die genauen Schritte, die erforderlich sind, damit ein Cookie nach dem Schließen eines Browsers bestehen bleibt? Im Moment habe ich:
createPersistentCookie
einstellentrue
aufLoggedIn
VeranstaltungMachineKey angegeben.Forms gleitender Ablauf auf @ gesettrue
.Solange der Browser geöffnet ist, bleibt der Benutzer angemeldet, aber sobald er geschlossen ist und es keine Rolle spielt, wie lange der Benutzer sich erneut anmelden muss. Was vermisse ich
BEARBEITEN Ich habe den Artikel von marapet durchgesehen (siehe Kommentare unten) und mich interessiert, ob das Ticket tatsächlich das IsPersistent-Flag hat, was es auch tut. Das entschlüsselte Ticket sieht folgendermaßen aus:System.Web.Security.FormsAuthentication.Decrypt(Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName].Value) {System.Web.Security.FormsAuthenticationTicket} CookiePath: "/" Expiration: {19/08/2010 17:27:14} Expired: false IsPersistent: true IssueDate: {19/07/2010 17:27:14} Name: "alex" UserData: "" Version: 2
Alle Angaben sind korrekt und entsprechen denen, die ich im LoggedIn-Ereignis festgelegt habe. Mehr über den Cookie-Wert, den ich direkt aus dem Cookie abrufen kann, ist mit diesem identisch. Sobald ich jedoch den Browser schließe, geht das Cookie verloren.
Was mir jedoch aufgefallen ist, ist, dass das Datum des Cookies, auf dem sich das Ticket befindet, aus irgendeinem Grund zurückgesetzt wurde. Erstens kann ich die Einstellungen in web.config nicht überschreiben. Am Ende des LoggedIn-Ereignisses ist die Expires-Eigenschaft 4000 Minuten nach dem Ausstellungsdatum und kein Monat, den ich programmgesteuert einstelle. Dann nach dem Laden der Seite das Cookie, das ich mit FormsAuthentication.FormsCookieName abgerufen habe, hat die Eigenschaft Expires vom 01.01.10001. Ich denke vielleicht liegt hier das Problem? Alle mögliche Gedanken würden geschätzt.
EDIT # 2: Ich ändere sowohl Titel als auch Tags, um die Sitzung einzuschließen, da sich herausstellt, dass dies für das Problem / die Lösung relevant ist.