【问题标题】:Forms Authentication Cookie Expiration表单身份验证 Cookie 过期
【发布时间】:2010-01-13 18:38:22
【问题描述】:

我有一个使用表单身份验证的 ASP.NET Web 应用程序。在 web.config 中,表单身份验证超时值设置为“20”(我理解为 20 分钟)。

我们发现您将与网站交互的问题..(即单击链接按钮、执行回发等)并随机返回登录页面进行身份验证。

似乎遵守了超时,但活动没有重新启动计数器。

任何想法在哪里查看或如何调试?

【问题讨论】:

    标签: asp.net forms-authentication


    【解决方案1】:

    检查 web.config 中的 slidingExpiration 并确保将其设置为 true

     <authentication mode="Forms">
       <forms loginUrl="~/Account/Login" timeout="2880" protection="All" slidingExpiration="true">      
       </forms>
     </authentication>
    

    这也是负载均衡的网站吗?确保会话信息不在进程中,或使用粘性会话。

    【讨论】:

    • 我的 web.config 中没有定义该属性,其默认值为 true。另外,是的,这是在负载平衡的环境中,但我们不使用会话,并且池中目前只有一台服务器。
    • 如果您不拥有代码库,请查找任何会改变 cookie 值或可能在某处调用 FormsAuthentication.SignOut() 的内容
    • 没有对 SignOut() 的模糊调用,我们不会更改 cookie 的值。
    • 除了调试、跟踪、检查机器配置之外,我想不出其他任何东西。但是我可能会将slidingExpiration 属性添加到配置文件中。祝你好运
    【解决方案2】:

    &lt;forms /&gt; 标签上设置timeout 属性也是必要的,如this blog post about forms authentication. 中所述

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 2018-09-29
      • 1970-01-01
      • 2014-04-01
      • 2011-11-25
      • 2011-06-11
      • 2012-07-25
      相关资源
      最近更新 更多