会话超时的实际时间是19分钟?
<%= Session.Timeout * 19 * 1000 %>
<script language="javascript" type="text/javascript">
setTimeout('SessionTimeout()', <%= Session.Timeout * 19 * 1000 %>);
function SessionTimeout() {
alert(<%= "'Session time out!!'" %>);
window.location = "Default.aspx"
}
</script>
答案 0 :(得分:2)
这不仅仅是价值吗?接下来是一些数学。
在IIS6下的Session.Timeout: 允许的最小值为1分钟,最大值为1440分钟。 默认值为10分钟
来源:http://msdn.microsoft.com/en-us/library/ms525473.aspx
虽然DOCS说10 - 在测试Session.Timeout的输出时,该值返回20。
答案 1 :(得分:1)
我不相信Session.Timeout正在那里设置,只能得到。
答案 2 :(得分:1)
Timeout
属性以分钟表示,默认情况下等于20,通常在web.config中设置:
<sessionState mode="InProc" cookieless="false" timeout="19" />
答案 3 :(得分:0)
不,它需要Session.Timeout
(以分钟为单位测量)并将其转换为整数,其中每分钟单位对应于19000.假设这最终为JavaScript时间增量(以毫秒为单位) ,将每分钟的超时时间映射到19秒。这有点奇怪。
很难说为什么代码在没有上下文的情况下会这样做。如果输出表示时间长度Session.Timeout
的JavaScript毫秒时间增量的意图,则应如下所示:
var timeout= <%= Session.Timeout*60*1000 %>;
答案 4 :(得分:0)
Javascript setTimeout
以毫秒为单位
所以将“Session.Timeout”转换为毫秒= Session.Timeout * 60 * 1000
答案 5 :(得分:0)
澄清一下,这就是你要做的事情:
在JavaScript中,用户打开页面19分钟后,您需要创建一个警告,警告用户其会话已超时,然后将其重定向到Default.aspx页面。
然后是的,正如其他人所说,以下内容对您有用:
<script language="javascript" type="text/javascript">
setTimeout('SessionTimeout()', 19 * 60 * 1000);
function SessionTimeout() {
alert(<%= "'Session time out!!'" %>);
window.location = "Default.aspx"
}
</script>
如果您希望将其与ASP.NET会话超时联系起来,并且要少一分钟,那么以下内容应该对您有用:
<script language="javascript" type="text/javascript">
setTimeout('SessionTimeout()', <%= Session.Timeout -1 %> * 60 * 1000);
function SessionTimeout() {
alert(<%= "'Session time out!!'" %>);
window.location = "Default.aspx"
}
</script>
但请注意,通过这种方式,如果用户在1分钟内按下警报上的“确定”,当他们点击Default.aspx时,他们仍然会有一个活动会话,因为请求将在超时窗口内发生,并将重置时钟。