session-Variablen timeout in asp.net app
In meinem web-app verwende ich einige session-Variablen, die gesetzt werden, wenn ich mich anmelden:
z.B. Session("user_id") = reader("user_id")
Verwende ich das durch meine app.
Wenn die session-variable Zeiten aus, diese wirft Fehler hauptsächlich beim verbinden mit der Datenbank als session("user_id")
ist erforderlich für einige Abfragen.
Wie kann ich meine session-Variablen so, dass, sobald Sie überschritten werden, um Sie auf der login-Seite oder wie kann man zumindest die Länge der Zeit, die zur Verfügung stehen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, du bist die Formularauthentifizierung verwenden. Der trick hier ist, um sicherzustellen, dass Ihre Formulare Authentifizierung abläuft, bevor die Sitzung.
Darüber schrieb ich in dieser Antwort hier:
Beispiel:
Konfigurieren Sie Ihre Forms - Authentifizierung-legt den timeout auf 60 Minuten:
Verlängern Sitzung Ablauf einer längeren Zeit:
In Ihrem
Login.aspx
code hinter Sie könnte auch tun, eineSession.Clear();
zu entfernen veralteter session-Daten vor der Zuordnung von session-Werte.Habe ich In der Vergangenheit verwendet eine base-Seite oder master-Seite auf jeder Seite (der eine Ausnahme für die login-Seite) liest ein Sitzungs-token, um zu sehen, wenn ein Benutzer angemeldet ist, derzeit.
Wenn es jemals liest eine null speichert es die aktuelle url und leitet auf die login-Seite.
Nach der Anmeldung liest die gespeicherte url und leitet den Benutzer zurück auf die gewünschte Seite.
Erhöhung des Sitzungs-timeout-Werts ist eine Einstellung im IIS.
Überprüfen, ob Sie = null tun
Response.Redirect("Home.aspx");
Seine im web.config innerhalb des sessionState element
Ich denke, dass viele Menschen wickeln Ihre Sitzung fordert, um eine "lazy load" - Muster. So etwas wie dieses: