ASP.NET MVC 4会话超时

use*_*870 4 forms-authentication asp.net-mvc-4

我正在使用VS 2012,IIS 7.5开发一个使用ASP.NET MVC4的Internet应用程序.我正在使用表单身份验证.我的网络配置中的设置如下.

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="30" name="userInfo" slidingExpiration="true" enableCrossAppRedirects="false" protection="All" >
    <credentials passwordFormat="Clear"/>
  </forms>
</authentication>
Run Code Online (Sandbox Code Playgroud)

但是IIS中的空闲超时(分钟)设置为20.当我在20多分钟后刷新我的应用程序时,我收到错误,说我的一个会话对象为空.但如果我在30分钟后刷新我的应用程序,它工作正常,它将我重定向到登录页面.输入凭据后,我正确导航到相应的页面.

我不明白为什么我会在20分钟后收到错误!(据我所知,这是IIS空闲时间设置).请帮忙.

谢谢

bri*_*cht 5

表单身份验证不处理会话超时.您想要调整会话状态超时. 有关更多详细信息,MSDN上有一篇关于web.config的sessionState元素的文章.

如果您打算使用会话状态,我会阅读不同的提供商.如果您希望将应用程序扩展到单个Web服务器之外,则需要使用与InProc不同的会话提供程序.使用进程外会话提供程序要求对象是可序列化的,这可能会在以后发生重大变化.现在进行更改,以便以后避免头痛.