Skip to content

Instantly share code, notes, and snippets.

@tqheel
Created July 18, 2012 20:37
Show Gist options
  • Save tqheel/3138727 to your computer and use it in GitHub Desktop.
Save tqheel/3138727 to your computer and use it in GitHub Desktop.
ASP.Net: Force redirect when session expires
//source: http://www.codeproject.com/Articles/27073/How-to-Redirect-to-Another-Page-when-Session-Timeo
//Distributed under Codeplex Project Open License: http://www.codeproject.com/info/cpol10.aspx
private void CheckSessionTimeout()
{
string msgSession = "Warning: Within next 3 minutes, if you do not do anything, "+
" our system will redirect to the login page. Please save changed data.";
//time to remind, 3 minutes before session ends
int int_MilliSecondsTimeReminder = (this.Session.Timeout * 60000) - 3 * 60000;
//time to redirect, 5 milliseconds before session ends
int int_MilliSecondsTimeOut = (this.Session.Timeout * 60000) - 5;
string str_Script = @"
var myTimeReminder, myTimeOut;
clearTimeout(myTimeReminder);
clearTimeout(myTimeOut); " +
"var sessionTimeReminder = " +
int_MilliSecondsTimeReminder.ToString() + "; " +
"var sessionTimeout = " + int_MilliSecondsTimeOut.ToString() + ";" +
"function doReminder(){ alert('" + msgSession + "'); }" +
"function doRedirect(){ window.location.href="/KB/session/login.aspx"; }" + @"
myTimeReminder=setTimeout('doReminder()', sessionTimeReminder);
myTimeOut=setTimeout('doRedirect()', sessionTimeout); ";
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(),
"CheckSessionOut", str_Script, true);
}
private void Page_Load(object sender, System.EventArgs e)
{
this.CheckSessionTimeout();
}
//To force page refresh instead of redirect replace doRedirect function with following
// function doRedirect(){ window.location.href=window.location.href; }
//If not using ScriptManager, replace with
//Page.RegisterClientScriptBlock(...)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment