.NET 过滤器
一.过滤器一些注意点
1.过滤器的添加位置,与调用位置毫无关系
官方的图:
只有资源过滤器和方法过滤器分为过滤器执行之前,和之后,其他过滤器都只执行一次
----------------------------2022-04-20--------------------------
2.过滤器执行顺序
作用范围不同的过滤器:执行中(execting)全局过滤器先执行,然后是类过滤器执行,然后是方法过滤器执行,执行之后(exected)正好是反过来
过滤器的执行顺序为:授权过滤器->资源过滤器->动作过滤器->结果过滤器->异常过滤器
二.各种过滤器的用法
1.授权过滤器(Authorization)
特点:
- 是过滤器管道中运行的第一个过滤器
- 控制对操作方法的访问
- 具有在它之前的执行的方法,但没有之后执行的方法
如果在授权过滤器出现异常,异常过滤器不会接收到异常,出现异常了,请小心应对
2.资源过滤器(Resource)
特点:
- 实现IResourceFilter或IAsyncResourceFilter接口(一个同步,一个异步)
- 执行会覆盖过滤器管道的绝大部分
- 只有授权过滤器在资源过滤器之前运行
管道短路器:
- 可以防止模型绑定访问表单数据
- 用于上传大型文件,以防止表单数据被读入内存
----------------------------2022-04-21--------------------------
三.过滤器注入
过滤器要想使用注入,需要使用typefilter特性
注意:异常过滤器中不会拿到授权过滤器,结果,及资源过滤器的错误
越是无知的人越是觉得自己无所不知(之前的自己)
越是学习的人越是觉得自己会的太少了(现在的自己)
共勉