【发布时间】:2012-09-23 20:58:20
【问题描述】:
我需要有关 MVC2 应用会话超时警告的帮助。当用户在会话超时的“n”分钟内时,应该会出现一个弹出窗口。是否有某种方法可以知道该信息或必须计算该信息。我有标准的获取/发布操作,还有 AJAX 请求。提前致谢。
【问题讨论】:
标签: c# .net session asp.net-mvc-2 session-timeout
我需要有关 MVC2 应用会话超时警告的帮助。当用户在会话超时的“n”分钟内时,应该会出现一个弹出窗口。是否有某种方法可以知道该信息或必须计算该信息。我有标准的获取/发布操作,还有 AJAX 请求。提前致谢。
【问题讨论】:
标签: c# .net session asp.net-mvc-2 session-timeout
ASP.NET sessione 在对服务器的最后一次请求后的 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,这很重要)。
修改此代码以使用固定的警报周期或计算“剩余分钟数”数字是留给读者的练习。
【讨论】: