Ich habe mich sehr bemüht, kann jedoch keine Lösung finden, wie der Wert für das Sitzungszeitlimit für eine In-Process-Sitzung für eine ASP.Net-Webanwendung festgelegt wird.
Ich verwende VSTS 2008 + .Net 3.5 + C #. Folgendes habe ich selbst geschrieben, um das Timeout auf 1 Minute festzulegen. Ist es richtig?
Ich habe unter system.web im Abschnitt geschrieben web.config
<sessionState timeout="1" mode="InProc" />
Antworten:
Wenn Sie das Zeitlimit auf 20 Minuten einstellen möchten, verwenden Sie Folgendes:
quelle
Der Wert, den Sie im
timeout
Attribut festlegen, ist eine der richtigen Methoden zum Festlegen des Sitzungszeitlimitwerts.Das
timeout
Attribut gibt an, wie viele Minuten eine Sitzung inaktiv sein kann, bevor sie abgebrochen wird. Der Standardwert für dieses Attribut ist 20.Indem Sie diesem Attribut den Wert 1 zuweisen, haben Sie festgelegt, dass die Sitzung 1 Minute nach ihrem Leerlauf abgebrochen wird.
Um dies zu testen, erstellen Sie eine einfache Aspx-Seite und schreiben Sie diesen Code in das Ereignis Page Load.
Öffnen Sie einen Browser und gehen Sie zu dieser Seite. Eine Sitzungs-ID wird gedruckt. Warten Sie eine Minute und klicken Sie dann auf Aktualisieren. Die Sitzungs-ID ändert sich.
Wenn meine Vermutung richtig ist, möchten Sie Ihre Benutzer dazu bringen, sich abzumelden, sobald die Sitzung abgelaufen ist. Zu diesem Zweck können Sie eine Anmeldeseite einrichten, auf der die Benutzeranmeldeinformationen überprüft werden, und eine Sitzungsvariable wie die folgende erstellen:
Jetzt müssen Sie auf jeder Seite eine Überprüfung für diese Variable wie folgt durchführen:
Dies ist ein Beispiel dafür, wie dies funktionieren wird.
Verwenden Sie jedoch Rollen- und Mitgliedschaftsklassen , die von ASP.NET bereitgestellt werden, um sichere Apps für Ihre Produktionsqualität zu erstellen. Sie bieten eine formularbasierte Authentifizierung, die viel zuverlässiger ist als die normale sitzungsbasierte Authentifizierung, die Sie verwenden möchten.
quelle
Wenn Sie MVC verwenden, legen Sie dies in der Datei web.config im Stammverzeichnis der Webanwendung ab, nicht in der Datei web.config im Verzeichnis Views. Es muss sich auch im Knoten system.web befinden, nicht unter George2 in seiner Frage: "Ich habe unter system.web in der Datei web.config geschrieben."
Der Timeout-Parameterwert repräsentiert Minuten.
Es gibt andere Attribute, die im sessionState-Element festgelegt werden können. Informationen finden Sie hier: docs.microsoft.com sessionState
Sie können dann den Beginn einer neuen Sitzung in der Datei Global.asax abfangen, indem Sie die folgende Methode hinzufügen:
quelle
Verwenden Sie dies in
web.config
:quelle
timeout
wirklich.stateConnectionString
undsqlConnectionString
werden ignoriert, wennmode="InProc"
und die Werte fürmode
undcookieless
auf ihre Standardwerte gesetzt werden. Das führt also wirklich zu Wolfwyrds Antwort.Wenn es nicht funktioniert
web.config
, müssen Sie es über IIS festlegen.quelle