1.過濾器
過濾器運行在MVC Action Invocation Pipeline(MVC Action 請求管道),我們稱它為Filter Pipleline(過濾器管道),Filter Pipleline 運行在MVC選擇Action執行前,因此我們可以在Action執行前做一些處理,例如:權限。
請求順序如圖:

2.過濾器類型
每個過濾器在Filter Pipleline的不同階段執行。
- Authorization filters (權限過濾器) Authorzation filters 在Filter Pipleline中首先運行,並用於決定當前用戶是否有請求權限。如果沒有請求權限直接返回。
- Resource filters (資源過濾器) Resource filters 在Authorzation后面運行,同時在后面的其它過濾器完成后還會執行。Resource filters 實現緩存或其它性能原因返回。因為它運行在模型綁定前,所以這里的操作都會影響模型綁定。
- Action filters (方法過濾器) Action filters會在執行Action方法前后被調用。這個可以在方法中用來處理傳遞參數和處理方法返回結果。
- Exception filters (異常過濾器) Exception filters 被應用全局策略處理未處理的異常發生前任何被寫入響應體。
- Result filters (結果過濾器) Result filters 可以在執行Action結果之前執行,且執行Action成功后執行,使用邏輯必須圍繞view或格式化執行結果。
下圖是過濾器管道的先后執行順序:

大家可以下載Demo,自己在代碼斷點上面執行兩次 一次請求是action正常 一次請求是action異常
上面是個人翻譯即一些理解,比較初級,對這個還會寫一些,如果有錯誤歡迎指正