MVC4提供的四种基本类型过滤器接口,IAuthorizationFilter、IActionFilter、IResultFilter和IExceptionFilter,可通过继承对应的接口和FilterAttrbute特性,定义自己的过滤器,也可继承内置的过滤器,重写相应的方法,完成自己的需求。

授权:IAuthorizeFilter  授权过滤器接口,对身份进行验证

活动:IActionFilter     行为过滤器接口, 执行Action方法前后执行逻辑

结果:IResultFilter    结果过滤器接口,提供了在返回结果前后执行方法

异常:IExceptionFilter  异常过滤器接口,可对其设定在出现异常后的处理方式和方法。

一.授权过滤器:

AuthorizeAttribute:授权过滤器特性,继承 FilterAttribute, IAuthorizationFilter

若是要自定义授权特性,可以继承于AuthorizeAttribute,然后重写AuthorizeCore(自定义授权)和HandleUnauthorizedRequest(授权失败执行逻辑)的方法。也可以直接继承于FilterAttribute和IAuthorizationFilter,重写OnAuthorization方法。

二:方法/行为结果过滤器:

自定义方法行为过滤器,只需要继承于ActionFilterAttribute即可,也可根据自己所需,是否继承IActionFilter和IResultFilter,再继承于FilterAttribute,自定义过滤器。

ActionFilterAttribute 继承了IActionFilter,IResultFilter接口,实现了接口方法。

OnActionExecuting:执行Action前执行

OnActionExecuted:执行Action后执行

OnResultExecuting:返回结果前执行方法

OnResultExecuted:返回结果后执行方法

三:异常过滤器

自定义异常过滤器,只需要继承于内置HandleErrorAttribute接口即可。也可自定义异常过滤器,继承于FilterAttribute 和IExceptionFilter.

OnException方法:在抛出异常时执行的方法。启用这个异常功能:

使用异常过滤器,需要两个步骤:

Web.Config 文件配置

<customErrors  mode="On"></customErrors>

开启自定义错误配置

使用handleError特性注释动作或控制器类

[HandleError (Order = 1 ,ExceptionType = typeof(sqlException),

View = "错误处理的视图")]

Pubic  ActionResult About(){}

最新文章

  1. wex5中的星星评分
  2. JDK动态代理和CGLIB的区别
  3. iOS远程推送1
  4. Swift开发中的一些琐碎
  5. String对象常用的一些方法
  6. ceph在品高云中的实践
  7. Set的常用方法(java)
  8. dojo实现省份地市级联报错(一)
  9. EasyUI中easyui-combobox的onchange事件。
  10. opencv 边缘检测原理
  11. mac使用apktool打包回apk
  12. jeffy-vim-v3.1.tar.gz
  13. Kinect2.0相机标定
  14. docker-compose安装与部署项目
  15. hdu 4643 GSM 计算几何 - 点线关系
  16. 相声段子:How Are You
  17. Azure 虚拟机如何配置 AntiMalware
  18. Java 中的值传递和引用传递问题
  19. C# 连接 IBM MQ
  20. 读CLR via C#笔记

热门文章

  1. 第二天 django apache
  2. EasyUI中Dialog的使用
  3. Codeforces Round #288 (Div. 2) E. Arthur and Brackets
  4. (苹果AppleWWDRCA.cer证书过期)Failed to locate or generate matching signing assets
  5. Android学习笔记(十一)——ListView的使用(下)
  6. Caffe学习系列(9):solver优化方法
  7. BZOJ 2438: [中山市选2011]杀人游戏
  8. WIN7 IIS7 安装方法
  9. 借助 SublimeLinter 编写高质量的 JavaScript &amp; CSS 代码
  10. C# nullable&lt;T&gt; 用法小结