如何检查当前会话剩余的秒数?

时间:2012-10-24 16:56:21

标签: asp.net session session-timeout

Session.Timeout仅返回Web.Config中的静态值。但我希望得到一个值,直到当前会话到期还剩多少秒。我该怎么办?


我尝试从JavaScript中检索Session.Timeout

setInterval('checkSession()', 100);

checkSession()是:

function checkSession() {
    console.log('Timeout: <%= Session.Timeout %>');
}

该页面会在几分钟内吐出当前的Session.Timeout值,并且只能证明Session.Timeout是我Web.Config中设置的静态值,而不是一个显示我有多少的动态值分钟还剩下。

2 个答案:

答案 0 :(得分:2)

我认为,只有在大多数在线银行网站上对客户端进行此控制才有意义。

<script>
   var timeLeft = <%= Session.Timeout * 60 %>; // seconds
   self.setInterval(checkTime, 1000);
   function checkTime()
   {
       timeLeft--;
       if (timeLeft < 120) // 2 minutes left
       {
         alert("2 minutes left.");
         // well you can refresh or close the page
         document.frames["iframeSession"].location.reload();
       }
   }

</script>

答案 1 :(得分:0)

如果您想在服务器上执行此操作(这没有多大意义),则它等于Session.Timeout,因为您正在会话中主动处理请求。

要在客户端执行此操作,只需将Session.Timeout值传递给页面并使用javascript处理它(记录呈现页面的时间并将当前时间与其进行比较)。