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等這些錯誤不進行處理,如...