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每次请求后,该值始终会重置.
Sil*_*fer 20
slidingExpiration = true值基本上表示在每次发出请求后,重置计时器,只要用户在超时值内发出请求,他就会继续进行身份验证.
这是不正确的.只有超时的一半时间过去,才会重置身份验证cookie超时.
例如,参见https://support.microsoft.com/de-ch/kb/910439/en-us或https://itworksonmymachine.wordpress.com/2008/07/17/forms-authentication-timeout-vs-session -超时/
Lop*_*ded 18
据我所知,他们是彼此独立的.通过保持会话超时小于或等于身份验证超时,您可以确保在身份验证超时后不会保留任何特定于用户的会话变量(如果这是您关注的问题,我认为这是正常的题).当然,您必须在注销时手动处理会话变量的处理.
这是一个体面的回答,可以回答你的问题,或者至少指出你正确的方向:
小智 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)
此配置每两分钟将我发送到登录页面,这似乎与之前的答案有争议
| 归档时间: |
|
| 查看次数: |
126484 次 |
| 最近记录: |