表单身份验证:确定票证为何无效

时间:2019-01-31 16:25:32

标签: c# asp.net-mvc forms-authentication windows-server-2012

我有一个使用表单身份验证的Web应用程序。该应用程序是MVC,也有一个部分用于请求来自我们的移动应用程序的请求。客户端的移动应用程序已经闲置了一段时间,然后又回来了,现在我在事件视图中看到了此记录:

事件代码:4005 事件消息:该请求的表单身份验证失败。原因:提供的票证无效。

我也在IIS中记录cookie,看到ASPXAUTH看起来正确,并且在第一个请求中出现。然后,在Authorize属性中将其重定向到登录页面并生成该错误消息。

我遇到的问题是,我们无法让客户端通过在移动应用程序上登录来重新进行身份验证,因为这将导致数据丢失,这在我们的情况下是不可行的。

所以我的问题是,有没有办法确定为什么它无效。例如,过期的令牌,无效的令牌等?我之所以问是因为我已经进行了研究,并且根据不同的原因有不同的处理方法。例如机器密钥问题等...

其他详细信息: IIS上的计算机密钥:在运行时自动生成,并且由应用程序唯一。输入自动生成的IsolateApps进行验证和解密。

最初将FormsAuthenticationTicket到期设置为int.MaxValue。

很难复制。我本来暂时无法复制此内容。昨晚似乎是随机发生的,所以现在我有一个移动应用程序,卡住了该无效票证错误以进行测试。

我看了这篇文章: ASP.NET Forms Authentication failed for the request. Reason: The ticket supplied has expired

感谢您的帮助。 谢谢,

1 个答案:

答案 0 :(得分:1)

  

IIS上的机器密钥:在运行时自动生成

可能是原因。如果您的机器密钥不是静态的,那么每次回收应用程序池时都会重新生成它。一旦发生这种情况,它将使您所有现有的登录名失效。

相关问题