我正在使用 VS 2012、IIS 7.5 开发一个带有 ASP.NET MVC4 的互联网应用程序。我正在使用表单身份验证。我的网络配置中的设置如下。
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="30" name="userInfo" slidingExpiration="true" enableCrossAppRedirects="false" protection="All" >
<credentials passwordFormat="Clear"/>
</forms>
</authentication>
但 IIS 中的空闲超时(分钟)设置为 20。当我在 20 多分钟后刷新应用程序时,我收到一条错误消息,指出我的会话对象之一为空。但是,如果我在 30 分钟后刷新我的应用程序,它工作正常,它会将我重定向到登录页面。输入凭据后,我将正确导航到适当的页面。
我不明白为什么 20 分钟后出现错误! (据我所知,这是 IIS 空闲时间设置)。请帮忙。
Thanks
表单身份验证不处理会话超时。您想改为调整会话状态超时。MSDN http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.85).aspx有一篇关于 web.config 的 sessionState 元素的文章以了解更多详细信息。
如果您要使用会话状态,我会阅读不同的提供程序。如果您希望将应用程序扩展到单个 Web 服务器之外,您将需要使用与 InProc 不同的会话提供程序。使用进程外会话提供程序要求对象可序列化,这可能会是以后的重大更改。现在就做出改变,以免以后给自己带来麻烦。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)