2012-08-03 76 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

相關問題