我在事件日志中多次收到此错误,并且用户已注销。
活动代码:4005
事件消息:请求的表单身份验证失败。原因:提供的故障单已过期 活动时间:3/10/2011 3:35:22 PM
活动时间(UTC):3/10/2011 8:35:22 PM
事件ID:fc2f70cc85014b0ca7dbb01471617b66
事件顺序:3392
事件发生:1
活动详细信息代码:50202
思想:
答案 0 :(得分:7)
听起来就像您的表单身份验证票证已过期时会出现错误。您的机票的超时期限是多少?是设置为滑动还是绝对过期?
我认为超时的默认值是20分钟,滑动到期,因此如果用户通过身份验证,并且在某些时候没有访问您的网站20分钟,他们的票证将会过期。如果设置为绝对到期,它将在X发出超时设置后X分钟到期。
您可以在web/machine.config
/configuration/system.web/authentication/forms
设置超时和到期政策(例如,滑动,绝对)
答案 1 :(得分:7)
AS Scott在这里提到http://weblogs.asp.net/scottgu/archive/2010/09/30/asp-net-security-fix-now-on-windows-update.aspx 在Windows安装.net框架的安全更新后,您将遇到此问题。 只需修改web.config文件中的配置部分,然后切换到另一个cookie名称。
答案 2 :(得分:4)
这是Microsoft http://www.iis.net/learn/troubleshoot/security-issues/troubleshooting-forms-authentication的一篇很好的文章,涵盖了各种案例和场景。
答案 3 :(得分:1)
从其他计算机使用web.config后,我遇到了同样的问题。该问题与无效MachineKey
有关。为了解决这个问题,我修改了web.config以使用我服务器的正确MachineKey
。
此MSDN blog post显示了如何生成MachineKey。
答案 4 :(得分:0)
我遇到了同样的错误,在我们的例子中,这是由负载平衡器引起的。我们必须确保将持久性设置为“源IP”。否则,登录表单将由一台服务器打开,并由另一台服务器处理,这将无法正确设置身份验证cookie。也许这可以帮助别人