zoukankan      html  css  js  c++  java
  • Mvc动作过滤器

     动作过滤器是可用于修饰动作方法或者控制器的自定义特性,框架将在执行动作之前或者之后执行动作过滤器的逻辑。实现过滤器需要创建一个继承FilterAttribute的类。或者根据希望实现的过滤器类型,创建一个继承自该类特定实现的类。

    过滤器有4中类型:

     授权过滤器

              该过滤器在动作之前执行,用于验证是否允许当前用户完成所有的请求操作。除了继承FilterAttribute 类之外,还实现了IAuthorizationFilter接口(该接口只有一个方法OnAuthorization),可以编写自己的授权过滤器,但是大多情况,可以使用框架提供的Authorize过滤器。

      异常过滤器

              处理在动作方法中末被捕获的异常,扩展了基类过滤器并实现IExceptionFilter接口(该接口的唯一方法是OnException),框架提供了可配置的动作HandleError,该动作涉及到几乎所有的错误处理情况。

      动作过滤器

      结果过滤器

               这个两个过滤器,都继承基类ActionFilterAttribute,允许指定在动作执行之前或之后以及结果执行之前或之后执行方法,动作过滤器允许使用自定义的逻辑创建自己的过滤器,框架提供这种动作的一个实现:OutputCache.

    核心过滤清器:

    HandleError:

     启用这个异常功能:

     需要两个步骤:

       Web.Config 文件配置

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

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

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

       View = "错误处理的view名称")]

       Public class ErrorController:Controller

      *:ExceptionType = typeof(可以定义需要的任何错误类型如:IOExcepiton)

         Order属性指定评估的异常的顺序,序号最低的最先进行评估,如果没有指定评估的异常顺序,默认值为-1.并且具有相同顺序值的过滤器的评估顺序不确定。

    Authorize:

    授权过滤器这个功能是通过Authorize过滤器提供的,这个过滤器利用Asp.net Membership Provider 验证当前用户是否通过认证并授权执行动作。

    示例:

    [Authorize]

    Pubic  ActionResult About(){}

    通过验证后才能执行about 动作

    [Authorize ( Users = "lin, su")]

    Public ActionResult About(){}

    [Authorize (Roles = "Admin")]

    Pubic ActinResult About(){}

    ValidateInput:

     特定的动作禁用验证:需要就是使用ValidateInput特性修饰动作,并将唯一的参数设置为false(默认为true)

    示例:

    [ValidateInput (fasle)]

    Public ActionResult UpateTest(){}

    OutputCache

    接收缓存的结果,输出缓存,助于程序承受更高的流量

    示例:

    [OutputCache  (Duration= 60 ,VaryByParam = "none")]

    Public ActinrResult Index(){
      ViewData["Msg"]="Now it's"+DateTime.Now.ToLongTimeSting();

      Return View();

    }

  • 相关阅读:
    Yahoo 14条 雅虎十四条 优化原则【转】
    从HTML1到HTML5,回首HTML发展历史【转】
    HTML的发展历史【转】
    jquery中prop()方法和attr()方法的区别【转】
    一个文献综述的写法
    ammunition用法
    混了SQL连接就运行这个
    cruel用法
    ball up用法
    episode用法
  • 原文地址:https://www.cnblogs.com/linsu/p/2413543.html
Copyright © 2011-2022 走看看