tnblog
首页
登录

mvc过滤器

286人阅读 2019/4/27 21:20 评论:0 手机 收藏 关注
分类: .NET


过滤器:

 

过滤器(filter):是基于AOP(面向接口编程)的设计,它的作用是对MVC框架处理客户端请求注入额外的逻辑

 

本质:就是实现一个特定接口或者父类的特殊类

 

使用时,不会影响主逻辑,可以额外添加效果(如用户登录权限)

需要时就就根据所需添加作用域,不需要时直接删掉就可以了,非常直接方便

 

 

过滤器的作用域:

 

全局过滤器

     所有控制器都受到限制:

     在App_Start文件的FilterConfig类中添加全局过滤器

            


控制器级别过滤器

     个别控制器受到限制:

        

    像这样,[过滤器名称] 的形式写到相应的控制器

 

action级别过滤器

限制到某个action

 

 

    备注:[AllowAnonymous] 可以用这个方式来跳过Authorization过滤器

 

 

过滤器的分类:

 

    此表格是按运行优先级排列,Excption过滤器除外

    BaseController(控制器)可以和过滤器同时存在且优先级于过滤器

    (控制器本身也是一个过滤器)

            

过滤器类型

接口

描述

Authorization

IAuthorizationFilter

最早运行的过滤器,在其他过滤器与action之前

Action

IActionFilter

action之前和之后运行

Result

IResultFilter

actionResult之前和之后运行

Excption

IExceptionFilter

在抛出错误时运行

 

 

过滤器的优先级:

 

本身存在优先级

设置优先级

  ü 改变参数

    如图所示,参数越小越优先运行,若是同级,则按顺序运行

         

  ü 改变参数

    通过order设置

    [过滤器名称(order=数值)]

    数值越小,优先运行,若是同级,则按顺序运行

 

 


评价
没有个性,不需要签名
文章
6
粉丝
16
评论
8
分类
16
{{item.ArticleTitle}}
{{item.BlogName}} : {{item.Content}}