ASP.NET MVC2实现会话超时警告

时间:2012-09-23 20:58:21

标签: c# .net session asp.net-mvc-2 session-timeout

我的MVC2应用会话超时警告需要帮助。当用户在会话超时的“n”分钟内时,应该发生弹出窗口。有没有办法知道信息或这个必须计算。我有标准的get / post操作,但也有AJAX请求。提前谢谢。

1 个答案:

答案 0 :(得分:1)

ASP.NET会话在上次向服务器发出请求后n分钟到期,因此只需知道n是什么,将其呈现给页面,并使用简单的Javascript计时器在适当的时候显示一条消息,如下所示:

<sctipt type="text/ecmascript">
var timeoutMins = <%= Session.Timeout %>; // HttpSessionstate.Timeout is the timeout period in minutes
setTimeout( informUser, 0.75 * ( timeoutMins * 60 * 1000 ) );
function informUser() {
    alert("Your session is expiring shortly");
}
</script>

0.75 * ( timeoutMins * 60 * 1000)部分将超时长度值转换为毫秒,然后将其缩小以给予用户反应时间。您可以通过向服务器发出AJAX请求来自动扩展会话(使用当前的ASP.NET会话cookie,这很重要)。

修改此代码以使用固定的警报周期或计算“剩余的分钟”数字是留给读者的练习。