簡體   English   中英

.NET 2.0 Web App身份驗證失敗:“提供的票證無效”

[英].NET 2.0 Web App Authentication Failing: “The ticket supplied was invalid”

我有一個.NET 4.0應用程序,其中一個2.0應用程序是一個子級。 Web應用程序不在多服務器環境中。 僅一台服務器參與處理這些請求。 兩個應用程序都使用自定義身份驗證,並且兩個應用程序都具有相同的machineKey屬性和值。 當我訪問2.0應用程序時,事件日志顯示以下消息:

Event code: 4005 
Event message: Forms authentication failed for the request. Reason: The ticket supplied was invalid. 
Event time: 12/2/2011 11:36:49 AM 
Event time (UTC): 12/2/2011 5:36:49 PM 
Event ID: 2068ad6957964f75885301fc2b58ddfe 
Event sequence: 2 
Event occurrence: 1 
Event detail code: 50201

我嘗試在Web.config的forms元素ticketCompatibilityMode屬性設置為Framework20,但這並不能解決問題。 由於存在此錯誤,因此未授權用戶,因此,常規對象(HttpContext)不會填充用戶信息。

有誰知道如何解決此錯誤,以便身份驗證適用於2.0應用程序? (順便說一句,我確實計划將2.0應用程序升級到4.0,但目前尚無法完成)

如果有人遇到同樣的問題,我可以通過在.NET 2.0應用程序的Web.config的<appSettings>部分中添加一些條目來解決此錯誤。 添加的條目是:

<add key="aspnet:UseLegacyEncryption" value="true" />
<add key="aspnet:UseLegacyMachineKeyEncryption" value="true" />

編輯(2012-05-04) :在服務器上安裝安全公告MS11-100之后,2.0應用程序上的身份驗證再次中斷。 將以下內容添加到4.0應用程序的Web.config中可解決此問題:

<add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibility" value="true" />

您必須在2個應用程序上具有相同的框架。

httpRuntime targetFramework =“ 4.5”

出於將信息移植到上一篇文章的目的,它對我有用,並將此密鑰添加到APP (均為4.0)web.config中:

    <add key="aspnet:UseLegacyEncryption" value="true" />
    <add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibility" value="true" />

此問題還有另一個原因。 即使在同一台計算機上,如果您的應用程序之一具有相同的IIS和相同的.NET框架,

<httpRuntime requestValidationMode="2.0" />

則共享身份驗證Cookie無效。

刪除requestValidationMode可解決此問題。 但是有時您無法做到,它需要待在那兒。 我還沒有發現在這種情況下該怎么辦

我遇到過同樣的問題。 在我的情況下,我在同一台服務器上有兩個不同的應用程序,並且兩個的name屬性都相同。

解決方案是為每個應用程序使用唯一的名稱。 在此處查看模式詳細信息https://msdn.microsoft.com/zh-cn/library/1d3t3c61(v=vs.85).aspx

它是cookie名稱,如果您使用相同的名稱,則cookie被覆蓋。

暫無
暫無

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

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