MVC和Web API 過濾器Filter

2021-09-06 22:09:27 字數 1673 閱讀 5048

mvc和web api filter(過濾器)

asp.net mvc 支援下面型別的操作篩選器:

·        授權篩選器。這些篩選器用於實現

iauthorizationfilter

和做出關於是否執行操作方法(如執行身份驗證或驗證請求的屬性)的安全決策。

authorizeattribute

類和requirehttpsattribute

類是授權篩選器的演示樣例。授權篩選器在不論什麼其它篩選器之前執行。

·        操作篩選器。這些篩選器用於實現

iactionfilter

以及包裝操作方法執行。

iactionfilter

介面宣告兩個方法:

onactionexecuting

和onactionexecuted

。onactionexecuting

在操作方法之前執行。

onactionexecuted

在操作方法之後執行,能夠執行其它處理,如向操作方法提供額外資料、檢查返回值或取消執行操作方法。

·        結果篩選器。這些篩選器用於實現

iresultfilter

以及包裝

actionresult

物件的執行。

iresultfilter

宣告兩個方法:

onresultexecuting

和onresultexecuted

。onresultexecuting

在執行actionresult

物件之前執行。

onresultexecuted

在結果之後執行,能夠對結果執行其它處理,如改動http響應。

outputcacheattribute

類是結果篩選器的乙個演示樣例。

·        異常篩選器。這些篩選器用於實現

iexceptionfilter

,並在asp.net mvc管道執行期間引發了未處理的異常時執行。異常篩選器可用於執行諸如日誌記錄或顯示錯誤頁之類的任務。

handleerrorattribute

類是異常篩選器的乙個演示樣例。

asp.net mvc 框架支援四種不同型別的篩選器:

授權篩選器 — — 實現的iauthorizationfilter屬性。

操作篩選器 — — 實現的iactionfilter屬性。

結果篩選器 — — 實現的iresultfilter屬性。

異常篩選器 — — 實現的iexceptionfilter屬性。

特別注意:

mvc中過濾器是system.web.mvc.dll實現

public static void registerglobalfilters(globalfiltercollection filters)

web api 中過濾器system.web.http.dll中的system.web.http.filters

實現,加入控制器時一定要注意:一定要選擇空的

api控制器。假設選擇空的

mvc控制器那麼過濾器對該控制器失效。

實現全域性過濾器:global.asax檔案的:

MVC過濾器 過濾器執行順序

如果某個action過濾器運用了多種過濾器,那麼過濾器的執行順序是如何呢?即執行順序是 授權過濾器 動作過濾器 結果過濾器 異常過濾器。注意 如果actionfilter過濾器執行過程中發生了異常,那麼會執行exceptionfilter過濾器,不會執行resultfilter過濾器。上圖所示的是正...

MVC的過濾器

過濾器分類 action過濾器 view結果渲染過濾器 全域性錯誤異常過濾器 身份驗證過濾器 1.action過濾器 在action執行之前和執行之後分別幹一些事 介面 iactionfilter 2.view結果渲染過濾器 介面 iactionfilter attributeusage attri...

Mvc 異常過濾器

mvc自帶乙個異常過濾器即handleerrorattribute 1.首先要進行配置web.config defaultredirect表示需要跳轉的錯誤頁面,mode需設定為 on或者 remoteonly.注 handleerror只處理伺服器500錯誤,404 400等這些錯誤不進行處理,如...