使用SQL Server会话状态时窗体身份验证失败

时间:2012-03-28 18:31:36

标签: asp.net forms-authentication

我最近一直在努力解决问题。我的网站使用表单身份验证突然表现得相当奇怪。一旦表单身份验证超时,我可以看到我已退出我的应用程序但由于某种原因,我没有被重定向到登录页面。这之前一切都很好。不知道突然发生了什么事。我正在使用SQL Server存储会话状态,当我将应用程序发送到inProc时,一切看起来都很好。

我甚至删除并重新创建了我的ASP.NET会话状态数据库,但还没有运气。当我查看事件查看器时,我有许多条目,其中包含以下消息:

“请求的表单身份验证失败。原因:提供的故障单已过期。”

在小搜索中,有人说,这可能发生在应用程序池回收。我甚至删除并重新创建了我的应用程序池。但是,我还没有被重定向到登录页面。

有人可以帮助我吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

要使表单身份验证实际阻止对页面的访问,您需要告诉您的应用程序在什么情况下阻止访问。

这将阻止所有未登录的用户并导致重定向返回指定的登录页面。为简单起见,请将其放在<authentication>标记之后。

<authorization>
    <deny users="?" /> 
</authorization>

如果您想限制更具体的字词,可以添加更详细的<location>元素。有关详细信息,请参阅this article