首页 > Web开发 > 详细

MVC4过滤器

时间:2016-02-27 14:57:46      阅读:348      评论:0      收藏:0      [点我收藏+]

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(){}

 

MVC4过滤器

原文:http://www.cnblogs.com/genesis/p/5222854.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!