簡體   English   中英

請求的 ASP.NET 表單身份驗證失敗。 原因:提供的票已過期

[英]ASP.NET Forms Authentication failed for the request. Reason: The ticket supplied has expired

我在事件日志中多次收到此錯誤,並且用戶已注銷。

事件代碼:4005
事件消息:請求的表單身份驗證失敗。 原因:提供的票證已過期。
活動時間:3/10/2011 3:35:22 PM
活動時間 (UTC):3/10/2011 8:35:22 PM
事件 ID:fc2f70cc85014b0ca7dbb01471617b66
事件序列:3392
事件發生:1
事件詳細代碼:50202

想法:

  • 我沒有使用網絡表單。
  • 我不認為應用程序池正在回收。
  • 我比較了幾個事件中的進程 ID,它是相等的。
  • 我的機器密鑰不是 AutoGenerate。

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 名稱。

當您的表單身份驗證票已過期時,這聽起來像是一個錯誤。 您的票的超時期限是多少? 它是設置為滑動到期還是絕對到期?

我相信超時的默認值是 20 分鍾,滑動過期,所以如果用戶通過身份驗證並且在某些時候沒有訪問您的網站 20 分鍾,他們的票將過期。 如果它設置為絕對過期,它將在它發出后 X 分鍾過期,其中 X 是您的超時設置。

您可以在/configuration/system.web/authentication/forms下的web/machine.config設置超時和過期策略(例如滑動、絕對)

這是來自 Microsoft http://www.iis.net/learn/troubleshoot/security-issues/troubleshooting-forms-authentication 的一篇好文章,涵蓋了各種案例和場景。

在使用另一台機器上的 web.config 后,我遇到了同樣的問題。 該問題與無效的MachineKey 為了解決這個問題,我修改了 web.config 以使用我服務器的正確MachineKey

這篇MSDN 博客文章展示了如何生成 MachineKey。

我遇到了同樣的錯誤,在我們的例子中,它是由負載平衡器引起的。 我們必須確保將持久性設置為源 IP。 否則登錄表單由一台服務器打開,並由另一台服務器處理,這將無法正確設置身份驗證 cookie。 也許這對其他人有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM