ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 過濾器


在MVC的請求管道 並非  asp.net core的請求管道。因此說Filter是專用於MVC的
貫穿特性,橫穿關注點。好比受權、日誌


這裏的Authorize其實就是一個Filter,主要用來受權的


好比這個Filter,咱們要求必須使用Https才能夠訪問






受權在整個管道的最前面
action過濾器是在Action被調用以前和以後,這個時候ModelBing已經發生了。綁定完以後就能夠操縱這些參數了。
Rsult:在Action的IActionResult以前和以後,經過它能夠控制結果的執行,也能夠短路結果的執行



對應的五種類型有物種的子接口


新建一個Filter的文件夾

LogAsyncResourceFilter 這個過濾器主要用來作日誌

F12 看一下IResourceFilter這個接口的源碼,接口就是實現的IFilterMetadata這個接口。

因此咱們只須要實現IResourceFilter 就能夠了。實現接口的兩個方法

OnResourceExecuting是在受權過濾器以後,參數上下文包含了httpContext還有路由的一些細節。以及當前這個Action的信息。
由於這個Filter能夠做用於Action
 asp.net

OnResourceExecuted:MVC管道剩餘部門執行完後,纔會執行。參數Context和上面不同,好比說還返回了ActionResult的信息

異步版本

它有個參數是Delegate委託next裏面包裝着整個MVC剩餘的管道


執行next方法 就是執行下一步的操做。這樣就和同步的版本對應上了




全部的管道過濾器調用完成以後調用最後這句

儘可能仍是使用同步的版本異步

應用Filter




還須要繼承Attribute

異步的也須要繼承



運行頁面查看控制檯:



應用Controller級別


打開默認頁面後,再訪問如下Privacy這個頁面


先註釋掉

使用全局
兩種方式

第三種:


視頻做者習慣於最後一種


.net

執行順序


相關文章
相關標籤/搜索