mvc的過濾器學習-資料查詢
標題:Filtering in ASP.NET MVC
地址:https://docs.microsoft.com/en-us/previous-versions/aspnet/gg416513(v=vs.98)
ASP.NET MVC支持以下類型的操作過濾器:
-
授權過濾器。這些實現IAuthorizationFilter並做出關於是否執行操作方法的安全決策,例如執行身份驗證或驗證請求的屬性。的AuthorizeAttribute類和RequireHttpsAttribute類是一個授權濾波器的例子。授權過濾器在任何其他過濾器之前運行。
-
動作過濾器。這些實現IActionFilter並包裝動作方法執行。
-
結果過濾器。這些實現IResultFilter並包裝ActionResult對象的執行。IResultFilter聲明了兩種方法:OnResultExecuting和OnResultExecuted。OnResultExecuting在執行ActionResult
-
異常過濾器。這些實現IExceptionFilter並在執行ASP.NET MVC管道期間拋出未處理的異常時執行。異常過濾器可用於記錄或顯示錯誤頁面等任務。所述HandleErrorAttribute類是一個例外濾波器的一個例子。
的控制器類實現每個過濾接口。您可以通過覆蓋控制器的On <Filter>方法來實現特定控制器的任何過濾器。例如,您可以覆蓋OnAuthorization方法。可下載示例中包含的簡單控制器會覆蓋每個過濾器,並在每個過濾器運行時寫出診斷信息。
-
OnAuthorization
-
onException的
-
OnActionExecuting
-
OnActionExecuted
-
OnResultExecuting
-
OnResultExecuted
ASP.NET MVC中提供的過濾器
ASP.NET MVC包括以下過濾器,這些過濾器作為屬性實現。可以在操作方法,控制器或應用程序級別應用過濾器。
-
AuthorizeAttribute。通過身份驗證和可選的授權來限制訪問。
-
HandleErrorAttribute。指定如何處理操作方法引發的異常。
註意
除非在Web.config文件中啟用了customErrors元素,否則此過濾器不會捕獲異常。
-
OutputCacheAttribute。提供輸出緩存。
-
RequireHttpsAttribute。強制通過HTTPS重新發送不安全的HTTP請求。
如何創建過濾器
您可以通過以下方式創建過濾器:
-
覆蓋一個或多個控制器的On <Filter>方法。
-
創建一個派生自ActionFilterAttribute的屬性類,並將該屬性應用於控制器或操作方法。
-
使用過濾器提供程序(FilterProviders類)註冊過濾器。
-
使用GlobalFilterCollection類註冊全局過濾器。
過濾器可以實現抽象的ActionFilterAttribute類。某些過濾器(如AuthorizeAttribute)直接實現FilterAttribute類。始終在操作方法運行之前調用授權過濾器,並在所有其他過濾器類型之前調用。其他操作過濾器(如OutputCacheAttribute)實現抽象ActionFilterAttribute類,該類允許操作過濾器在操作方法運行之前或之後運行。
您可以使用操作方法或控制器以聲明方式使用filter屬性。如果屬性標記控制器,則操作篩選器將應用於該控制器中的所有操作方法。
以下示例顯示了HomeController類的默認實現。在示例中,HandleError屬性用於標記控制器。因此,過濾器適用於控制器中的所有操作方法。
mvc的過濾器學習-資料查詢