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

执行顺序


相关文章
相关标签/搜索