C# : Warn user before session gets timed out

This example illustrate how to warn the user just before session gets timed out.

Whenever you nevigate to another page, just call below method to warn user about session gets
timed out before 3 minutes. I have called this method in page_load.

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 end
int int_MilliSecondsTimeReminder = (this.Session.Timeout * 60000) - 3 * 60000;
//time to redirect, 5 miliseconds before session end
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='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();
}
By Perry    Popularity  (1900 Views)