zoukankan      html  css  js  c++  java
  • Asp.net mvc基础(十二)过滤器Filter

    AOP(面向切面编程)是一种架构思想,用于把公共的逻辑放到一个单独的地方,这样就不用每个地方都写重复的代码了。相当于:一夫当关,万夫莫开

    在Asp.net mvc中提供了四种过滤器接口实现了这种AOP机制,分别是:IAuthorizationFilter,IActionFilter,IResultFilter,IExceptionFilter

     

    注意:每次执行Action方法的时候,都会执行过滤器

    1.IAuthorizationFilter

    场景:一般用来检查当前用户是否有Action的执行权限,在每个Action被执行前执行OnAuthorization方法

    使用方法:

    1.创建一个实现IAuthorizationFilter接口的类

    2.添加类到Global.asax中

    参考案例:登录系统

     

    filterContext.ActionDescriptor.ActionName 获取要执行的Action的名字。

    filterContext.ActionDescriptor.ControllerDescriptor.ControllerName 获取要执行的Controller的名字。

    filterContext.Result如果赋值了,那么就不会再执行Action了,而是以"filterContext.Result"的值作为执行结果。

    filterContext.HttpContext.Response.Redirect("地址"); 和filterContext.Result不同,这句执行完,还是会执行Action方法的。

    在过滤器中推荐使用:filterContext.Result = new RedirectResult("路径");

    2.IActionFilter

    IActionFilter也是在每个Action被执行前执行OnActionExecuting方法,每个Action执行完毕后再执行OnActionExecuted方法。和IAuthorizationFilter的区别是IAuthorizationFilter再IActionFilter之前执行。

    3.IResultFilter

    IResultFilter是在每个ActionResult的前后执行IResultFilter。

    4.IExceptionFilter

    当Action执行发生未处理异常的时候执行OnException方法

    获取异常代码:Exception ex=filterContext.Exception

    总结:只需要编写一次,在其他地方就可以执行了。

     

     

     

     

  • 相关阅读:
    简述密码
    w命令
    Python打包-Pyinstaller
    [转]油猴Tampermonkey-让百度云下载飞起来
    百度云高速下载Pandownload
    AdoConnect-获取连接字符串 (工具)
    Python爬虫-豆瓣电影 Top 250
    C++中使用ODBC API访问数据库例程
    Python爬虫-什么是爬虫?
    Python+Django(Python Web项目初体验)
  • 原文地址:https://www.cnblogs.com/fengjiqiang123/p/14916145.html
Copyright © 2011-2022 走看看