首页 > 代码库 > .Net Core MVC 过滤器(一)
.Net Core MVC 过滤器(一)
1.过滤器
过滤器运行在MVC Action Invocation Pipeline(MVC Action 请求管道),我们称它为Filter Pipleline(过滤器管道),Filter Pipleline 运行在MVC选择Action执行前,因此我们可以在Action执行前做一些处理,例如:权限。
请求顺序如图:
2.过滤器类型
每个过滤器在Filter Pipleline的不同阶段执行。
- Authorization filters (权限过滤器) Authorzation filters 在Filter Pipleline中首先运行,并用于决定当前用户是否有请求权限。如果没有请求权限直接返回。
- Resource filters (资源过滤器) Resource filters 在Authorzation后面运行,同时在后面的其它过滤器完成后还会执行。Resource filters 实现缓存或其它性能原因返回。因为它运行在模型绑定前,所以这里的操作都会影响模型绑定。
- Action filters (方法过滤器) Action filters会在执行Action方法前后被调用。这个可以在方法中用来处理传递参数和处理方法返回结果。
- Exception filters (异常过滤器) Exception filters 被应用全局策略处理未处理的异常发生前任何被写入响应体。
- Result filters (结果过滤器) Result filters 可以在执行Action结果之前执行,且执行Action成功后执行,使用逻辑必须围绕view或格式化执行结果。
下图是过滤器管道的先后执行顺序:
Demo:https://github.com/a764578566/MyFilters
大家可以下载Demo,自己在代码断点上面执行两次 一次请求是action正常 一次请求是action异常
参考文档:https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/filters
上面是个人翻译即一些理解,比较初级,对这个还会写一些,如果有错误欢迎指正
.Net Core MVC 过滤器(一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。