MVC中的过滤器

 

在ASP.NET MVC应用程序中,当有以下需求时,你可以使用Filter功能:

判断登录与否或用户权限、决策输出缓存、防盗链、防蜘蛛、本地化与国际化设置、实现动态Action

Filter是一种声明式编程方式,在Asp.net MVC中它只能限制于Action(或它的Controller)。

过滤器是一组.NET 特性,MVC在特定运行时点调用这些特性上的指定方法,以此实现功能注入。MVC包含四个基本的过滤器类型: 授权(Authorization)、活动(Action)、结果(Result)以及异常(Exception)。MVC为这四中过滤器提供了接口定义:IAuzhorizationFilter、IActionFilter、IResultFilter、IExceptionFilter,所以MVC在运行时知道如何调用过滤器上的方法。

过滤类型(Filter Type)接口(Interface)默认实现(Default Implementation)描述(Description)
AuthorizationIAuthorizationFilterAuthorizeAttribute首先运行,在其他过滤器的操作方法
ActionIActionFilterActionFilterAttribute运行之前和之后的动作方法
ResultIResultFilterActionFilterAttribute运行前后执行的操作结果
ExceptionIExceptionFilterHandleErrorAttribute如果只运行另一个过滤器, 操作方法,或行动结果抛出一个异常

如果我们要实现自定义的权限验证功能,应该从AuthorizeAttribute类继承,原因在于AuthorizeAttribute已经优化了与OutputCacheAttribute缓存过滤器的协调,避免因缓存原因造成权限验证失效的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值