欢迎来到球速体育·(中国)官方网站QIUSU SPORTS!

ASP.NET

当前位置: 球速体育·(中国)官方网站 > 网络编程 > ASP.NET

MVC5教学之过滤器(上)

时间:2024-08-25 15:38:31|栏目:ASP.NET|点击:

  (Controller)和对应的行为方法(on)去处理,那么如果我们想要在Action处理的前后加上一些额外的处理逻辑怎么办呢?这时候就用到了过滤器(Fil)。

  在ASP.NET MVC的请求处理过程中有19个管道事件,这些事件分布在请求处理的各个节点中,比如BeginRequest(开始处理请求时触发)、AuthenticateRequest(对请求进行身份验证时触发)、AuthorizeRequest(对请求进程授权时触发)…等等等等。而过滤器的主要作用就是将我们的附加逻辑注入到这些请求处理管道中。

  在实际业务中,在Action方法前后添加额外附加逻辑的情况有很多,过滤器就是用来完成此功能。通过过滤器可以将与业务逻辑无关但经常需要执行的代码分离开,使我们的代码逻辑性更加清晰,代码更加简洁。

  MVC给我们提供了四种过滤器,基本满足了我们实际业务中常用的需求,包括以下:

  除以上接口之外,我们还要用到FilterAttribute类,这个类将我们的过滤器包装成了特性,使我们的过滤器可以方便的在Action方法上方使用。

  所有实现了IAuthorizationFilter接口的都可以称之为授权过滤器。它的接口定义如下:

  授权过滤器是最先运行的过滤器,它运行在其它过滤器和Action方法之前。客户端请求在调用Action之前,MVC框架会检测Action上是否有授权过滤器,如果有会调用OnAuthorization方法,如果此方法批准了请求,才会调用相应的Action。流程如图:

  由于使用的是MVC自带的授权验证方法,未能符合它的验证机制,所以无权限查看。通常我们需要添加一个新的派生自AuthorizeAttribute类的授权过滤器来完成我们自己业务逻辑。

  下面我们自定义一个授权过滤器。我们在MVC项目中添加一个Filters文件夹,我们所有自定义的过滤器都放可以到这个文件夹下,便于管理。

  可以看到,我们只要重写AuthorizeCore方法就可以根据我们的业务需求判断是否有权限访问,返回值为true允许访问,返回值为false禁止访问。

  可以看到,当About页面没有user参数时,会提示无权限,有user参数则可以访问通过。

  在实际业务中我们可以使用授权过滤器来管理用户登录状态的授权验证。当然,我的这个例子只是基础的用法,实际业务比这复杂的多,那么就需要我们自己去思考设计授权过滤器方法了。

  我们看到该接口里有两个方球速体育官方入口法OnActionExecuting和OnActionExecuted,前者在动作方法执行前调用,后者在动作方法执行后调用。

  OnActionExecuting方法是在Action方法执行前调用的,那么我们可以利用这个方法来检测请求,并且可以在这里修改请求,取消请求等等操作。

上一篇:如何进行@Aspect注解的使用

栏    目:ASP.NET

下一篇:7 后端框架:一句话启动

本文标题:MVC5教学之过滤器(上)

本文地址:http://aihaoedu.com/wangluobiancheng/1614.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:88888888 | 邮箱:aihaoedu.com

Copyright © 球速体育·(中国)官方网站 版权所有