2010-10-21 5 views
6

Ich habe dies in meiner webconfig Datei zu zeigen, mit ...Wie Session Time out Seite implementieren asp.net MVC

<authentication mode="Forms"> 
     <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
    </authentication> 

Timeout 2880 bedeutet, wie viel s oder min seine dauern?

Wie, wenn meine Session Zeit zeigen I SessionTimeout.aspx Seite ...

Dank

Antwort

4

Sie können ein Sitzungszeitlimit in MVC mit einem Aktionsfilter identifizieren. Hier ist a question Ich fragte nach dem Problem. Und die angegebene Zeit ist in Minuten. (Überprüfen Kommentare für den Link)

+1

Laut MSDN gibt 'timeout' * die Zeit in Integerminuten * an. http://msdn.microsoft.com/en-us/library/1d3t3c61(v=VS.80).aspx – bzlm

+0

@bzlm, Danke für die Klärung, ich habe aufgehört Session Timeouts vor einer Weile zu verwenden. Wird die Antwort aktualisieren. –

+1

Der Wert 2880 sollte einen Hinweis geben. Warum sollte der Standardwert 48 Minuten betragen? :) – bzlm

-1

Machen Sie einen Zähler in JavaScript und wenn das Timeout erreicht wird, um den Benutzer umleiten angezeigt werden müssen.

Edit: Als ich Ihre Frage verstand, wollten Sie auf die Seite umleiten, wenn ein Benutzer zu lange inaktiv war, ja?

+0

THanks Joakim, können Sie mir bitte im Code erklären, wenn Sie bitte ich bin völlig neu zu dieser Art von Dingen, wie die Zählung mit Javascript zu implementieren? – kumar

+0

In dem Beispiel in der Frage ist das Sitzungszeitlimit 2 Tage. Selbst für eine wirklich coole Webseite ist das eine lange Zeit, um inaktiv zu sein. :) – bzlm

+0

Ich stimme zu, dass es eine lange Zeitüberschreitung ist, aber die Frage ist über Clientumleitung in meinen Augen und nicht Serverumleitung, wenn das Login-Timeout erreicht wurde. – Joakim

1

Wie Gabriel sagte, mit FormsAuthentication wird die Zeitüberschreitung hinter den Kulissen passieren, was bedeutet, dass Ihr Benutzer aufgefordert wird, sich erneut anzumelden, wenn sie nach Ablauf der Zeit auf eine Seite zugreifen.

Ich würde vorschlagen, in Ihrer web.config Hinzufügen von slidingExpiration = "wahr" zu suchen.

Möglicherweise möchten Sie auch eine automatische Abmeldung implementieren, damit potenziell vertrauliche Daten nicht verfügbar sind, sobald das Zeitlimit erreicht ist.

Ich tat dies durch Aufrufen von window.setTimeout (myFunction, 30000) mit jeder Seite laden, wenn der Benutzer authentifiziert wurde. Diese Funktion verwendet JQuery ajax, um eine Aktion auszulösen, die die verbleibende Zeit vor Ablauf der Sitzung zurückgibt. Sobald die Zeit unter Null fällt, können Sie über JavaScript zu einer Abmeldungsaktion umleiten. Andernfalls ruft diese Methode einfach window.setTimeout (myFunction, 30000) erneut auf, so dass sie weiterhin überprüft.

Sie können Züchter erhalten, indem Sie eine Warnmeldung hinzufügen und dem Benutzer erlauben, auf eine Schaltfläche zu klicken, die JQuery ajax verwendet, um eine Aktion auszuführen, die den Timer zurücksetzt.

Verwandte Themen