1. 程式人生 > >3、ASP.Net Core2.0值Filter

3、ASP.Net Core2.0值Filter

        Asp.Net Core的filter總共有5種,它們分別是Authorization Filter(授權過濾器)、Resource Filter(資源過濾器),Action Filter、Exception Filter(異常過濾器)和Result Filter(結果過濾器)。它們通常都在不通的階段執行,執行順序是:授權過濾器→資源過濾器→action過濾器→結果過濾器。接下來我們詳細的看每一種過濾器。

一、Authorization Filter(授權過濾器)

       授權過濾器在過濾管道中是第一個被執行的過濾器,通常被用於驗證請求的合法性,如果不合法的話後面的管道驗證會直接跳過。授權過濾器中有一個Before方法,不像其他過濾器有前置階段方法和後置階段方法。不要在授權過濾器中丟擲異常,因為沒有任何程式碼來處理異常(異常過濾器不處理)。

程式碼例項:

1、Startup中新增配置:

2、controllers中:

3、Login登入前端:

結果:訪問Center是會被自動重定向到Login,Login登入後再post的Login中會把使用者名稱和token寫入到客戶端的cookie中,再訪問Center就會從請求中取出token。

4、關於Claim、ClaimsIdentity和ClaimsPrincipal的關係比喻

      可以用一個合法持有身份證的人來做比喻,ClaimsPrincipal就是持有身份證卡片的人,ClaimsIdentity就是身份證卡片,Claim是身份證卡片上的每一條資訊。