为什么会话状态超时会覆盖我的MVC3应用程序中的表单身份验证超时?

时间:2012-01-25 11:20:25

标签: asp.net-mvc-3

我的web.config中有以下内容

<sessionState mode="InProc"
              timeout="2"
              cookieless="UseCookies"/>
<authentication mode="Forms">
  <forms
    loginUrl="~/Account/LogOn"
    timeout="1"
    cookieless="UseCookies" />
</authentication>

据我所知,在MVC3(或Asp.Net)中,sessionState控制用户在服务器上的会话何时超时 表单身份验证超时控制何时强制用户再次登录网站。

这似乎不完全正确:如果我从web.config中删除sessionState部分,则身份验证部分中的超时为 完全被忽略 - 它似乎只是在一段默认时间后超时。

实际上,当身份验证超时时,似乎需要会话状态超时来控制。这根本没有任何意义。 谁能告诉我这里缺少什么?

这与我提出的this question有关,但我没有明白为何会出现这种情况。

1 个答案:

答案 0 :(得分:4)

会话超时与表单身份验证超时无关。

您没有详细说明如何创建机票,因此以下是可能影响您观察结果的最常见的怪癖:

  1. 如果您自己实例化了身份验证票据,那么将设​​置超时设置 配置文件无效。
  2. 滑动超时有点时髦,除非您再次访问窗口的后半部分,否则票证不会延长。
  3. 您可能需要查看此文章以获取概述:

    http://support.microsoft.com/kb/910443