ASP.NET MVC 会话超时

6

如何为asp.net mvc应用程序实现会话超时功能?我希望在检测到一段时间的不活动后自动注销用户。

我可以实现一个ActionFilterAttribute并应用于每个方法,但这样做不会自动注销用户。它只有在用户尝试调用该操作的方法时才会注销。

谢谢。

2个回答

12

你应该能够通过web.config文件管理这个:

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

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

这也可以使用IIS管理应用程序进行配置;不确定您正在使用哪个版本的IIS,但是此Technet文章描述了即使在旧版(IIS7之前)中也应该很容易理解的内容。请注意,这种方法在幕后仍会管理web.config文件中的设置,因此如果这是版本控制的,则不建议以此方式更改它。


4

这是因为会话(session)在服务器端维护。如果您希望用户浏览器中的空闲页面自动注销,您需要编写一些javascript代码。您可以使用ajax请求来检查会话是否已过期,根据结果将用户重定向到首页(登录或不需要身份验证的任何其他页面)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接