<%= Session.Timeout * 19 * 1000%>

时间:2009-12-10 12:55:48

标签: .net asp.net javascript scripting

会话超时的实际时间是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>

6 个答案:

答案 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时,他们仍然会有一个活动会话,因为请求将在超时窗口内发生,并将重置时钟。