2009-11-23 15 views
13

Wie lösche ich die Cookies, die über meine asp.net mvc (C#) - Anwendung gespeichert wurden, wenn der Benutzer den Browser schließt?Cookies im Browser löschen Schließen

Gibt es eine Möglichkeit, ein Cookie zu erstellen, so dass es abläuft, sobald der Browser geschlossen wurde?

Ich muss Cookies verwenden, weil ich einige der Werte speichern werde, die beibehalten werden, bis der Browser geschlossen wird.

Zum Beispiel, während der Anmeldung ich kann die Benutzer-ID in Cookie speichern, die ich für meine Anwendungsprozesse verwenden kann, bis der Bwoser schließt.

Session wird nach einer bestimmten Zeit verfallen, die ich mit der Verwendung von Cookies überwinden muß

Antwort

22

Sessions für diese usualy verwendet werden. Gemäß Wikipedia, wenn kein Ablaufdatum festgelegt ist, wird ein Cookie gelöscht, wenn der Benutzer den Browser schließt.

Der Cookie-Setter kann ein Löschdatum angeben. In diesem Fall wird der Cookie an diesem Datum entfernt. Wenn der Cookie-Setter kein Datum angibt, wird der Cookie entfernt, sobald der Benutzer seinen Browser beendet.

+1

Die Sitzung wird ablaufen, wenn der Benutzer den Browser für längere Zeit geöffnet hält. Bleibt der Cookie ohne Ablaufdatum bis zum Schließen des Browsers? – Prasad

+0

Es hängt wirklich davon ab, wie der Browser es implementiert hat. – Ikke

+5

Sie können nicht damit rechnen, dass der Cookie beim Schließen des Browsers gelöscht wird. –

0

Wie in this SO question: erwähnt

Response.Cookies("cookie_name").Expires = Session.Timeout; 
+4

Sie möchten tatsächlich keinen Expires-Wert für den Cookie angeben. Dadurch wird der Cookie entfernt, wenn die Browsersitzung beendet wird (der Benutzer schließt den Browser). –

-1

Wenn ich meine Cookie in der Vergangenheit zu verfallen oder hat es gar nicht gesetzt, es verursacht durch SSO Login in eine Endlosschleife mit meiner Website zu bekommen. Wahrscheinlich habe ich meine Website falsch konfiguriert, um mit der SSO-Anmeldung zu arbeiten.

Aber was für mich funktionierte, war nur 2 Sekunden zum Cookie Ablaufzeit hinzufügen.

trackCookie.Expires = DateTime.Now.AddSeconds(2); 

Dies gibt dem Cookie die Gültigkeit bei der Anmeldung. Und läuft bald darauf ab. Beim Schließen des Browsers wird der Cookie gelöscht.