Ich habe eine asp.net 4.0-Anwendung, die Formularauthentifizierung auf eine Zeitüberschreitung bei 45 Minuten festgelegt ist. Ich möchte den Benutzer auf eine Timeout-Seite umleiten, wenn die Sitzung abgelaufen ist. Kann mir jemand sagen, wie ich das mache? Ich betreibe .net 4.0.Session_End in Global.asax.cs nicht unter Verwendung der Formularauthentifizierung
web.config hat:
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="~/Login.aspx"
defaultUrl="~/Default.aspx" protection="All" timeout="45"
requireSSL="false">
</forms>
</authentication>
Global.asax.cs Datei hat:
void Session_End(object sender, EventArgs e)
{
Response.Redirect("~/Timeout.aspx");
}
die Weiterleitung könnte eine Aktualisierung sogar sein, oder eine Art von Ajax-Aufruf, der Sitzungsdaten überprüft. –
Sie haben Recht. Du denkst, ich könnte etwas wie jQuery idletimer (http://paulirish.com/2009/jquery-idletimer-plugin/) verwenden, setze es auf 45 Minuten, wie du es mit (window.setTimeout) gemacht hast, und redirect? Denkst du, das könnte gut funktionieren? Ich kann 45 Minuten Leerlaufzeit warten und eine Abmeldung/Session-Ende/Redirect erzwingen. – capdragon
@krefftc: Ich habe auf der verlinkten Seite nicht viel gelesen, aufgrund der sehr ruckartigen und nervigen Animationen, aber ich denke, dass der Leerlauftimer versucht herauszufinden, ob der Benutzer im Browser aktiv ist oder nicht. Das Sitzungs-Timeout kümmert sich überhaupt nicht darum, was der Benutzer im Browser tut, es sei denn, der Browser ruft etwas vom Server ab, so dass dies überhaupt nicht betroffen ist. Daher würde "setTimeout" besser dem Zeitlimit der Sitzung auf dem Server entsprechen. – Guffa