asp.net表单身份验证超时设置被忽略

时间:2014-05-24 19:58:32

标签: asp.net authentication timeout

在web.config中,我已按如下方式配置了表单身份验证:

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login.aspx"
        timeout="20"
        slidingExpiration="true"/>
</authentication>

最初,ASPXAUTH cookie设置正确。使用Firefox的cookie查看器,我可以看到cookie和有效期是正确的(20分钟)。

滑动到期还会正确设置更新的Cookie(再添加20分钟)。

但之后任何新的http请求(即使在接下来的5分钟内完成)都会导致302错误,并重定向到Login.aspx,就好像身份验证已过期一样。

申请详情如下: 目标asp.net 4 iis 7.5 共享主机,但有专用池(回收没有帮助)。 Login.aspx使用asp Login控件进行身份验证(没有自定义cookie)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这可能有很多原因。

这也发生在您的本地计算机上吗?您是否在web.config中配置了一个与本地主机环境不匹配的httpCookie域?

您是否配置了机器密钥(验证/加密)?这在负载平衡的情况下很重要。

您在IIS中使用动态内容缓存吗?

查看您的活动日志。默认情况下,基于失败的表单身份验证的302错误将记录在那里。是否有任何条目告诉您为什么被认为是未经身份验证?它可以帮助确定根本原因(票证已过期,无法解密等)。

另请注意,表单身份验证cookie的到期时间不会扩展到每个请求。在原始超时的50%过去后(在您的情况下为10分钟),表单身份验证cookie将刷新。因此,请适当配置会话超时。

相关问题