表单验证过早的cookie过期

时间:2010-07-08 15:48:24

标签: asp.net authentication cookies forms-authentication

我对刚刚投入生产的网站遇到了麻烦。出于某种原因,尽管设置似乎在15分钟的会话超时时是正确的,但用户报告说他们必须在大约5分钟后再次登录。

我可以检查什么?我该怎么解决这个问题?我不能在本地或我们的QA环境中重现它。我可以查看IIS设置吗?客户端上的浏览器设置?

下面的

是我的身份验证的web.config条目。谢谢!

    <authentication mode="Forms">
        <forms loginUrl="~/admin/Login" cookieless="UseCookies" requireSSL="false" timeout="15" slidingExpiration="true" name="{C8226EAB-2423-45ce-8A1D-3BC227F1BEE9}"/>
    </authentication>

3 个答案:

答案 0 :(得分:1)

您需要将机器密钥添加到web.config文件中。它会在每个应用程序池回收时自动生成,并导致您的身份验证票证cookie值失败。

这类似于以下问题:

figuring out why asp.net authentication ticket is expiring

答案 1 :(得分:0)

我认为您还需要设置域名设置。不要设置www.yourdomain.com,因为如果用户访问yourdomain.com,就会获得不同的cookie。

使用我们的www:yourdomain.com

将其设置为根名称
<authentication mode="Forms">
  <forms 
  path="/" 
  domain="yourdoman.com"  // <- maybe this key is the reason
  />
</authentication>

答案 2 :(得分:0)

确保在IIS管理器中将会话设置为至少15分钟。