zoukankan      html  css  js  c++  java
  • MVC Filter

    MVC Filter是典型的AOP(面向切面编程)。MVC框架支持5种不同类型的过滤器,每种类型让你能够在请求处理类型的不同点上引入逻辑。下图描述了集中过滤器类型:

    不同类型的Filters

    1. Authorization filters – 实现IAuthorizationFilter 特性.
    2. Action filters – 实现IActionFilter 特性.
    3. Result filters – 实现IResultFilter 特性.
    4. Exception filters –实现IExceptionFilter 特性.

    Filters 按照上面列出的顺序执行。例如, authorization filters 总是在action filters之前执行,exception filters在所有其他类型的filter之后执行.

    ActionFilterAttribute 基类

    为了使你能够更加容易的实现自定义的action filter, ASP.NET MVC框架包含一个ActionFilterAttribute 基类. 这个类实现了IActionFilter 与IResultFilter 接口,并且继承了Filter 类。

    ActionFilterAttribute 基类拥有以下可以重载的方法:

    • OnActionExecuting在action method调用前发生。
    • OnActionExecuted在action method调用后发生, 但是在result执行前发生 (在 view 呈现前)
    • OnResultExecuting在result执行前发生(在view 呈现前)
    • OnResultExecuted 在result执行后发生(在view 呈现后)

    1.认证过滤器

       认证过滤器是MVC第5版本的新特性,它对应用程序中的控制器和动作方法如何验证用户提供了细粒度的控制。

    2.授权过滤器

    新建类TestAuthorizeAttribute

     public class TestAuthorizeAttribute:AuthorizeAttribute
        {
            public override void OnAuthorization(AuthorizationContext filterContext)
            {
                filterContext.HttpContext.Response.Write("OnAuthorization<br/>");
                //注释掉父类方法,因为父类里的 OnAuthorization 方法会调用asp.net的授权验证机制!
                // base.OnAuthorization(filterContext);
            }
        }
  • 相关阅读:
    学习之spring属性文件注入
    学习之spring自带缓存
    FreeMarker语法
    spring mvc 拦截器
    spring mvc 全局异常处理
    spring mvc 多视图配置
    学习之spring注解DI疑惑
    @Transactional详解
    mybatis关联查询
    shiro 实现 用户 a 操作b 的权限 ,用户 b 能够及时获知。b不需要退出登陆 。 关闭鉴权缓存,或者不配置缓存
  • 原文地址:https://www.cnblogs.com/marshhu/p/6927450.html
Copyright © 2011-2022 走看看