ASP.NET窗體身份驗證對請求失敗。原因:提供的票證已過期/無效


    在事件查看器中看到很多下面的提示信息:

Event code: 4005 
Event message: 請求的窗體身份驗證失敗。 原因: 提供的票證無效。 
Event time: 
Event time (UTC): 
Event ID: 
Event sequence: 
Event occurrence: 
Event detail code: 50201 

   

Event code: 4005 
Event message: 請求的窗體身份驗證失敗。 原因: 提供的票證已過期。 
Event time: 
Event time (UTC): 
Event ID: 
Event sequence: 
Event occurrence: 
Event detail code: 50202 

  

 

看着這個錯誤心煩。網上找了很多處理方法,感覺都不對症。於是反編譯了,源代碼,發覺如下順序查找:

FormsAuthenticationModule.OnAuthenticate-->ExtractTicketFromCookie

這個函數中可以看到對FormsAuthentication.Decrypt調用。

在獲取到票據后,會進行判斷

判斷產生倆結果,一個是null,一個是過期

null會寫事件日志WebBaseEvent.RaiseSystemEvent(null, 0xfa5, 0xc419);

過期也會寫事件日志 WebBaseEvent.RaiseSystemEvent(null, 0xfa5, 0xc41a);

0xfa5 4005

0xc419 50201

0xc41a 50202

大家對照一下就明白了。

所以 這個提示沒辦法去除。除非通過配置文件把這樣的提示都屏蔽了。屏蔽方法如下:

<healthMonitoring>
      <rules>
        <remove name="Failure Audits Default" />
      </rules>
    </healthMonitoring>

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM