C# 如何为我的代码设置正确的过期会话?
我有一个代码,为会话执行弹出消息已过期,如下所示。但是,此代码无法执行正确的计数会话。当运行该程序时,它将直接弹出会话过期消息,该消息与我设置的时间不符。我知道为什么我的消息会这么早弹出,因为在我的C# 如何为我的代码设置正确的过期会话?,c#,session-timeout,expired-sessions,C#,Session Timeout,Expired Sessions,我有一个代码,为会话执行弹出消息已过期,如下所示。但是,此代码无法执行正确的计数会话。当运行该程序时,它将直接弹出会话过期消息,该消息与我设置的时间不符。我知道为什么我的消息会这么早弹出,因为在我的 Page.ClientScript.RegisterStartupScript(cstype, csname, strconfirm, false); 我没有添加“超时”,所以它没有按照我的要求执行,但是如何添加它呢?当我尝试添加它时,它将导致输入格式错误。有人能帮我解决这个问题吗 string
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);
}
string csname=“timeoutWarning”;
类型cstype=this.GetType();
如果(!Page.ClientScript.isstartupscript已注册(cstype,csname))
{
var timeout=HttpContext.Current.Session.timeout*60*1000;
string strconfirm=“如果(!window.confirm('您的登录会话即将过期。是否要扩展它?'){window.location.href='../login.aspx'}”;
Page.ClientScript.RegisterStartupScript(cstype,csname,strconfirm,false);
}
您无法设置超时强>
将java脚本代码提取到函数saySessionTimeOutHandler()
,并在Session过期时调用该函数:
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>"; }";
string strconfirm=”“+
“window.setTimeout('SessionTimeOutHandler()',60000);”+
“函数SessionTimeOutHandler(){”+
“如果(!window.confirm('您的登录会话即将过期。是否要扩展它?')”
+“{window.location.href='../login.aspx'}”;}”;
现在,只需替换strconfirm初始化语句。它应该适用于您!多亏了您的解决方案,但弹出消息如何在过期时重复显示?谢谢&问候