表单身份验证超时与sessionState超时

Luc*_*ke2 131 asp.net session web-config

我有关于网站会话超时的代码.在web.config中,我遇到了这段代码.

 <authentication mode="Forms">
  <forms loginUrl="~/Auth/SignOn.aspx" timeout="40" slidingExpiration="true" />
</authentication>

<sessionState timeout="30" />
Run Code Online (Sandbox Code Playgroud)

有谁知道一个先于另一个先例,以及它们是如何不同的.谢谢.

Ica*_*rus 211

他们是不同的东西.表单身份验证超时值设置身份验证cookie设置为有效的时间(以分钟为单位),这意味着,在value几分钟后,cookie将过期,用户将不再进行身份验证 - 它们将被重定向到登录页面自动 - .该slidingExpiration=true值基本上表示在每次发出请求后,计时器都会重置,只要用户在超时值内发出请求,它们就会继续进行身份验证.如果设置slidingExpiration=false身份验证cookie,则value无论用户是否在超时值内发出请求,都将在数分钟后过期.

SessionState超时值设置的保存在内存中(或任何后备存储正在被使用,SQL服务器,OutOfProc等)特定会话数据会话状态提供者所需要的时间.例如,如果使用示例中的值将对象放入Session中,则此数据将在30分钟后删除.用户可能仍然经过身份验证,但会话中的数据可能不再存在.Session Timeout每次请求后,该值始终会重置.

  • 一个澄清:表单身份验证超时设置[Ticket](http://msdn.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx)的到期时间,不一定是cookie的所在可以存储票证.cookie可能根本没有过期时间(混淆地称为会话cookie,这意味着它会持续到用户关闭浏览器),或者甚至可能根本没有cookie("无cookie"形式认证).对于持久性cookie,表单身份验证将cookie过期和故障单过期设置为同一时间. (24认同)
  • 来自MSDN的另一个澄清:"为了防止性能受损,并且为打开cookie警告的用户避免多个浏览器警告,当超过指定时间的一半时间过去时,cookie会更新." 因此,只有在超过一半时才会重置cookie超时.因此建议将其设置为会话超时的2倍. (11认同)

Sil*_*fer 20

slidingExpiration = true值基本上表示在每次发出请求后,重置计时器,只要用户在超时值内发出请求,他就会继续进行身份验证.

这是不正确的.只有超时的一半时间过去,才会重置身份验证cookie超时.

例如,参见https://support.microsoft.com/de-ch/kb/910439/en-ushttps://itworksonmymachine.wordpress.com/2008/07/17/forms-authentication-timeout-vs-session -超时/


Lop*_*ded 18

据我所知,他们是彼此独立的.通过保持会话超时小于或等于身份验证超时,您可以确保在身份验证超时后不会保留任何特定于用户的会话变量(如果这是您关注的问题,我认为这是正常的题).当然,您必须在注销时手动处理会话变量的处理.

这是一个体面的回答,可以回答你的问题,或者至少指出你正确的方向:


Kar*_*son 7

不同之处在于,一个(表单超时)与验证用户有关,而另一个(会话超时)与缓存数据存储在服务器上的时间有关.所以它们是非常独立的东西,所以一个不优先于另一个.


小智 5

      <sessionState timeout="2" />
      <authentication mode="Forms">
          <forms name="userLogin" path="/" timeout="60" loginUrl="Login.aspx" slidingExpiration="true"/>
      </authentication>
Run Code Online (Sandbox Code Playgroud)

此配置每两分钟将我发送到登录页面,这似乎与之前的答案有争议

  • 如果登录相关信息存储在会话变量中,则可能会发生这种情况,当清除时,它会重定向到登录。所以这取决于代码? (3认同)