一張圖看懂ASP.NET MVC5認證和授權過濾器的執行順序


 

    IAuthenticationFilter是MVC5中的新特性,它有2個關鍵方法:

  • OnAuthentication
  • OnAuthenticationChallenge

    當IAuthenticationFilterIAuthorizationFilter結合使用時,流程看似比較復雜:

  1. 根據路由選擇Controller和Action
  2. 如果設置了IAuthenticationFilter,則會調用OnAuthentication方法
    • 在OnAuthentication中如果設置了context的Result,則會直接跳轉到OnAuthenticationChallenge方法。
    • 如果OnAuthentication中沒有設置context的Result,則交由IAuthorizationFilter處理(如果沒有定義IAuthorizationFilter,則進入Action方法)。
  3. 如果設置了IAuthorizationFilter,則執行授權邏輯調用OnAuthorization方法
    • 在OnAuthorization中如果設置了context的Result,則會直接跳轉到IAuthenticationFilter的OnAuthenticationChallenge方法。
    • 如果OnAuthorization中沒有設置對應context的Result,則進入Action方法。
  4. IAuthenticationFilter的OnAuthenticationChallenge方法始終會在ActionResult的ExecuteResult執行之前運行。

 


免責聲明!

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



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