2009-07-31 5 views
1

Ich habe eine Verpflichtung, die Persistent Auth Cokkies für einen langen Zeitraum bestehen bleiben (1 Monat)ASP.Net Session State für lang andauernde Auth Plätzchen

Ich bin auch schon einige Session-Variablen verwenden. Jetzt kann ich das Sitzungszeitlimit nicht so lang setzen (es wird den Server töten). Es ist derzeit auf 30 Minuten eingestellt.

Angenommen, der Benutzer lässt sein Browserfenster für einen Tag geöffnet, der Auth-Cookie wird nicht ablaufen, aber die Sitzung würde. Und die Anwendung wird nicht funktionieren.

Also irgendwelche Vorschläge, Problemumgehungen oder nützliche Links für dieses Problem?

+0

Was müssen Sie in der Sitzung speichern? – UpTheCreek

Antwort

1

das Authentifizierungs-Cookie Persisting ist einfach und unabhängig von der Session-Zustand:

<system.web> 
    <authentication mode="Forms"> 
    <forms timeout="43200"/> 
    </authentication> 
</system.web> 

die Zeitspanne in Minuten festgelegt ist, so:

30 (Tage) * 24 (Stunden) * 60 (Minuten) = 43200 Minuten

Das Session-Zeug ist etwas kniffliger, aber machbar.

Sie müssen wirklich sehen, was Sie tatsächlich in Sitzung speichern, und ob Sie wirklich alle die ganze Zeit brauchen. Sitzungsvariablen werden auf dem Server gespeichert, damit sie auch nach Neustarts von Anwendungen beibehalten werden (standardmäßig 20 Minuten nach der letzten Aktivität auf der Website oder 29 Stunden nach dem letzten Neustart der App und anderen Ausnahmefällen) um etwas anderes als InProc-Sitzungen zu verwenden - entweder mit einem Sitzungsserver oder SqlSessions.

Es kann jedoch auch sein, dass Sie auch etwas mit Profilen machen können, also speichern Sie die am wenigsten verwendeten Variablen in einem Profilspeicher und rufen Sie sie nur dann ab, wenn Sie wirklich brauchen.

Andernfalls sollten Sie prüfen, wie Sie den Sitzungsstatus wiederherstellen können, wenn ein Benutzer zurückkommt. Speichern Sie also ein bekanntes Token in einem dauerhaften Cookie, mit dem Sie dort weitermachen können, wo Sie aufgehört haben Der einfachste Weg ist, ihren Benutzernamen vom Authentifizierungssystem zu übernehmen und die Details in einer Datenbank zu speichern ...

Verwandte Themen