MVC过滤器:是一种面向切面的编程思想
编写逻辑的时候不会影响到主逻辑
面向切面的编程主要是为了降低耦合度
过滤器的使用与否,修改配置就行,非常方便,不会影响原有的逻辑
MVC的作用域:
全局过滤器:
FilterConfig里边去添加一条
控制器级别
使用特性方式加入控制器上面
action级别
使用特性方式加入Action上面
MVC过滤器的分类:
Action级别的过滤器:
请求所有的action都会进入该过滤器,继承IActionFilter即可
Result过滤器:
继承IResultFilter在action返回值执行的时候执行,一般可以用来处理返回值
权限过滤器:
继承IAuthorizationFilter主要用来实现授权
异常处理过滤器:
系统里边发生异常会进入过滤器 ,继承的是IExceptionFilter
其实控制器本身也是一个过滤器,而且是各大类型的过滤器都实现了的过滤器
MVC过滤器的优先级:
过滤器全是全局的情况:
由高到低:
权限过滤器——>ActionFitler——>异常处理过滤器——>ResultFilter
类型是同一个的时候:
- 1:全局优先于局部
- 2:全局的情况,默认是谁写前面谁先执行
- 3:可以通过设定order值来确定优先级,数字越小越先执行