假设我在 web.config 中使用了类似的东西
<authentication mode="Forms">
<forms
loginUrl ="~/HomeLogin.aspx"
cookieless= "AutoDetect"
slidingExpiration="true"
timeout="10"
protection ="All"
/>
</authentication>
如果slidingExpiration 设置为true(默认值),则每次FormsAuthenticationModule 对用户进行身份验证时,它都会更新票证的到期时间。如果设置为 false,则不会在每个请求上更新过期时间,从而导致票证在第一次创建票证时的超时分钟数后过期。
笔记: 身份验证票证中存储的到期时间是绝对日期和时间值,例如 2008 年 8 月 2 日上午 11:34。此外,日期和时间是相对于 Web 服务器的本地时间的。这个设计决策可能会对夏令时 (DST) 产生一些有趣的副作用,即美国的时钟提前一小时(假设 Web 服务器托管在观察夏令时的区域设置)。考虑在 DST 开始时间(即凌晨 2:00)附近有 30 分钟到期的 ASP.NET 网站会发生什么。想象一下,一位访问者在 2008 年 3 月 11 日凌晨 1:55 登录网站。这将生成一个表单身份验证票证,该票证将于 2008 年 3 月 11 日凌晨 2:25(未来 30 分钟)到期。但是,一旦凌晨 2:00 滚动,由于 DST,时钟会跳到凌晨 3:00。
这是一个可能导致问题的实例。任何人都可以指出这种方法的任何缺点。我有兴趣了解它。
谢谢