2012-09-23 53 views
0

我需要关于我的MVC2应用程序会话超时警告的帮助。当用户处于会话超时的“n”分钟内时,应该出现弹出窗口。是否有某种方法可以知道这些信息,或者需要进行计算。我有标准的get/post操作,但也有AJAX请求。提前致谢。ASP.NET MVC2实现会话超时警告

回答

1

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,这很重要)来自动扩展会话。

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

+0

这是一个很好的开始,在某些应用程序中可能是合适的,但应该注意的是它不支持滑动过期(http://msdn.microsoft.com/zh-cn/library/system.web。 configuration.formsauthenticationconfiguration.slidingexpiration.aspx),通过AJAX请求更新会话,或打开多个选项卡/窗口的情况。 –