2012-08-03 72 views
0

我有一个执行会话弹出消息的代码已过期,如下所示。但是,此代码无法执行正确的计数会话。当运行程序时,它会直接弹出会话过期的消息,但没有按照我设置的时间。我知道为什么我的消息,会弹出这么早,因为在我的如何为我的代码设置正确的会话过期?

Page.ClientScript.RegisterStartupScript(cstype, csname, strconfirm, false); 

所以它不被执行,因为我想要的,但如何添加它,我没有在“超时”补充的吗?当我尝试添加它时,会导致输入格式错误。有人可以帮我解决这个问题吗?

string csname = "timeoutWarning"; 
Type cstype = this.GetType(); 
if (!Page.ClientScript.IsStartupScriptRegistered(cstype, csname)) 
{ 
    var timeout = HttpContext.Current.Session.Timeout * 60 * 1000; 
    string strconfirm = "<script>if(!window.confirm('Your login session is about to expire. Do you want to extend it?')){window.location.href='../login.aspx'}</script>"; 
    Page.ClientScript.RegisterStartupScript(cstype, csname, strconfirm, false); 
} 

回答

0

您是否设置了超时时间! 提取您的Java脚本代码的功能说SessionTimeOutHandler(),并呼吁,虽然sesssion到期:

string strconfirm = "<script>" + 
        "window.setTimeout('SessionTimeOutHandler()', 60000);" + 
"function SessionTimeOutHandler() { "+ 
" if(!window.confirm('Your login session is about to expire. Do you want to extend it?'))" 
+" {window.location.href='../login.aspx'}</script>"; }"; 

现在,只需更换您的strconfirm初始化语句。它应该为你工作!

+0

感谢您的解决方案,但弹出消息如何被REPEATED显示何时过期? 感谢和问候 – user1539511 2012-08-03 09:16:05

相关问题