asp.net mvc会话超时

sta*_*ser 6 c# session-timeout c#-4.0 asp.net-mvc-2

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

我可以实现一个ActionFilterAttribute并应用于每个方法但不会自动注销用户.仅当用户尝试调用该操作的方法时,它才会签出.

谢谢.

Gra*_*mas 12

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

<system.web>
    <sessionState timeout="x"/> 
    ...
</system.web>
Run Code Online (Sandbox Code Playgroud)

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

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


Muh*_*hid 4

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