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

bpl*_*lus 5 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>
Run Code Online (Sandbox Code Playgroud)

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

这似乎并不完全正确:如果我从web.config中删除sessionState部分,则认证部分中的超时被完全忽略 - 它似乎只是在某个默认长度的时间后超时.

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

这与我提出的这个问题有关,但我没有深究为什么会出现这种情况.

Rik*_*iko 4

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

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

  1. 如果您自己实例化了身份验证票证,则配置文件中的超时设置不起作用。
  2. 滑动超时有点奇怪,除非您在窗口的后半部分再次访问,否则门票不会延长。

您可能想查看这篇文章以了解概述:

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