2011-04-25 165 views
6

如何为asp.net mvc应用程序实现会话超时功能?我希望用户在指定时间段内检测到非活动状态时自动注销。asp.net mvc会话超时

我可以实现ActionFilterAttribute并应用于每个方法,但不会自动注销用户。只有当用户试图为该操作调用该方法时,它才会注销。

谢谢。

回答

4

这是因为在服务器端维护会话。如果你想让用户的浏览器中的空闲页面自动注销,你必须为它编写一些javascript。你可以使用ajax请求来检查会话是否过期,并根据结果,你可以重定向用户索引(登录或任何其他页面,不需要认证)

12

你应该能够管理这从web.config:

<system.web> 
    <sessionState timeout="x"/> 
    ... 
</system.web> 

我不是MVC专家,但在ASP.NET中推出的这种行为的变化并不是我所期望的。

这也可以使用IIS管理应用程序进行配置;不确定您使用的是哪个版本的IIS,但是this Technet article describes即使在较旧的(IIS7之前)版本中应该很容易遵循。请注意,在这个场景之后,这个方法仍然管理web.config文件中的设置,所以如果这是版本控制的,我不会建议以这种方式更改它。