【发布时间】:2019-01-31 16:25:31
【问题描述】:
我有一个使用表单身份验证的 Web 应用程序。该应用程序是 MVC,并且还有一个用于来自我们的移动应用程序的请求的部分。客户端的移动应用程序有一段时间没有使用,然后又回来了,现在我看到了这个登录的事件视图:
事件代码:4005 事件消息:请求的表单身份验证失败。原因:提供的票证无效。
我还在 IIS 中记录 cookie,发现 ASPXAUTH 看起来正确,并且在第一个请求中出现。然后,在 Authorize 属性处,它重定向到登录页面并生成该错误消息。
我遇到的问题是我们不能让客户端通过登录移动应用程序重新进行身份验证,因为这会导致数据丢失,这在我们的案例中不是一个选项。
所以我的问题是,有没有办法确定它为什么无效。比如,过期的token,无效的token等?我问是因为我已经研究过,并且有不同的方法来解决这个问题,具体取决于哪个原因。比如机器密钥问题等等……
其他细节: IIS 上的机器密钥:在运行时自动生成,并且由应用程序唯一。验证和解密都输入了 AutoGenerate,IsolateApps。
FormsAuthenticationTicket 过期在最初生成时设置为 int.MaxValue。
很难复制。我最初有一段时间无法重现这一点。昨晚它似乎是随机发生的,所以现在我有一个移动应用程序卡住了这个无效票证错误来测试。
我看过这篇文章: ASP.NET Forms Authentication failed for the request. Reason: The ticket supplied has expired
感谢任何帮助。 谢谢,
【问题讨论】:
标签: c# asp.net-mvc forms-authentication windows-server-2012