2009-11-19 6 views
7

Ich muss die Sitzung live bleiben, es sei denn, bis der Benutzer in meiner asp.net mvc (C#) - Anwendung abmelden klickt.Halten Sie die Sitzung am Leben für immer als stackoverflow

Wenn der Benutzer den Browser schließt und erneut öffnet, sollte die Sitzung mit den Werten fortgesetzt werden.

Ich versuche, wie im Stackoverflow zu implementieren.

Irgendwelche Ideen/Vorschläge?

+4

Etwas so einfaches wie ein Cookie mit einem langen Ablaufdatum? –

Antwort

9

Sie sagen, dass Sie die Sitzung "wie in StackOverflow" am Leben erhalten möchten. ... StackOverflow, wie die meisten sicheren Websites, hält Sitzungen nicht unbegrenzt am Leben. Es verwendet Cookies, um sich am Login zu "erinnern".

+1

Gibt es einen Beispielcode als Referenz? – Prasad

-3

Die Sitzung wird verlieren, wenn der Browser

+0

http hat keine "Sitzung" Ihr Server "erinnert sich" an eine "Sitzung", weil Sie den "Browser" gebeten haben, etwas zu senden, das Sie zum Speichern des Status verwendet haben. "Etwas" könnte ein Cookie sein, eine clevere Art URLs zu erstellen oder möglicherweise ein verstecktes Feld, wenn jede "Seite" ein "Formular" ist –

0

geschlossen ist, wenn Sie sich erinnern ‚Staat‘ wollen, selbst wenn (wegen der abgelaufenen Sitzung/Session-Cookie) Ihre Benutzer zwingen sich erneut anmelden. Sie müssen die Sitzungsdaten beibehalten. Vielleicht kann Ihr Web-Container dies für Sie tun.

-1

Wenn Sie zunächst mehrere Sitzungen, aber temporäre Daten erstellen möchten, sollten Sie sich das ASP.NET-Benutzerprofil ansehen.

Wenn Sie Logins für Sitzungen beibehalten möchten, sehen Sie sich die Bits von FormsAuthentication an, die sich mit der Erinnerung an den Benutzer beschäftigen.

Wenn Sie die Sitzungen auf unbestimmte Zeit am Leben erhalten möchten, ohne das Zeitlimit für immer festzulegen (was in einigen Fällen einen Mord durch den Serveradministrator auslöst), ist es sinnvoll, einen Ajax- "Herzschlag" zu setzen, um während des Browsers zurück zum Server zu pingen ist offen und effektiv machen einen "lebe diese Sitzung am Leben" Trick.

2

wenn Sie FormsAuthentication verwenden, können Sie so etwas wie:

FormsAuthentication.SetAuthCookie("userName", true); 

, dass ein Cookie schaffen, die über verschiedene Browser-Sitzungen beibehalten wird, und das erreichen, was Sie suchen.

Verwandte Themen