MVC过滤器的用法

实例产品基于asp.net mvc 5.0框架,源码下载地址:http://www.jinhusns.com/Products/Download


在Asp.net Mvc中当你有以下及类似以下需求时你可以使用Filter功能

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

Asp.Net MVC提供了以下几种默认的Filter:

需要注意一点,Asp.Net MVC提供的ActionFilterAtribute默认实现了IActionFilter和IResultFilter。而ActionFiterAttribute是一个Abstract的类型,所以不能直接使用,因为它不能实例化,所以我们想使用它必须继承一下它然后才能使用。
Filter继承于ActionFiterAtribute抽象类并可以覆写void OnActionExecuting(ActionExecutingContext)和void OnActionExecuted(ActionExecutedContext)以及void OnResultExecuting(ResultExecutingContext)和voidOnResultExecuted(ResultExecutedContext)。
它们的执行先后顺序如下:

  OnActionExecuting是Action执行前的操作
  OnActionExecuted则是Action执行后的操作
  OnResultExecuting是解析ActionResult前执行
  OnResultExecuted是解析ActionResult后执行

在这里只讲一个常用的,在Action执行前的操作,用于验证用户是否登录或权限是否通过
下面是过滤器的重写方法:Message是参数(可以不需要)

然后是Action的使用方法,在Action上面加过滤器的标示,并且可以加参数,如下所示

然后通过浏览器访问上面的Action便可以看到下面的执行顺序:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值