zoukankan      html  css  js  c++  java
  • ASP.NET MVC动作过滤器

    ASP.NET MVC提供了4种不同的动作过滤器(Aciton Filter)。

    1.Authorization Filter

    在执行任何Filter或Action之前被执行,用于身份验证

    2.Action Filter

    在执行Action之前或之后被执行,用于执行的Action需要生成记录或者缓存数据时

    3.Result Filter

    在执行ActionResult的前后被执行。在View被显示到浏览器之前可以执行一些逻辑运算,或修改ViewResult的输出结果

    4.Exception Filter

    在Action执行之前或之后或者ActionResult执行之前或之后被执行。在执行中发生异常时,可以使用此Filter指向其他页面来显示错误信息

    下面是不同动作过滤器的执行顺序:

    OnAuthorization

                  ↓

    OnActionExecuting

                   ↓

    执行动作(Action)

                   ↓

    OnActionExecuted

                   ↓

    OnResultExecuting

                   ↓

    执行视图(View)

                   ↓

    OnResultExecuted

                  ↓

    OnException

    动作过滤器一律使用属性(Attribute)的方式应用在Action之上。eg:

    [csharp] view plain copy
     
     print?
    1. [Authorize(Roles="admin")]  
    2. public ActionResult Edit(int id)  
    3. {  
    4.         return View();  
    5. }  


    这四种动作过滤器都是.net属性(Attribute)类,只要继承Attribute类并实现与之对应的接口就可以扩展功能。

    注:动作过滤器属性也可以用在Controller上,若用在Controller上,则将此属性用在此Controller中的所有Action之上。

    Authorization过滤器属性

    • Authorize属性
    用户或角色符合要求才能被使用。否则就会跳转到登录页面
    其中在web.config文件的system.web类的设定中有一个Authentication设定,其中<forms>部分有一个loginUrl属性可以设定当权限不足时应该跳转的地址,eg:
            
    [csharp] view plain copy
     
     print?
    1. <authentication mode="Forms">  
    2.   <forms loginUrl="~/Account/LogOn" timeout="2880" />  
    3. </authentication>  
    • ChildActionOnly属性
     
    • RequiredHttps属性
            应用RequiredHttps属性,让Action仅能显示在https安全登录的状态下。如果用户使用http连接,该Action就会自动转向同一个Action的https网址。
            
    [csharp] view plain copy
     
     print?
    1. [RequireHttps]  
    2. public ViewResult Index()  
    3. {  
    4.         ......  
    5.         return View();  
    6. }  
    • ValidateInput属性
  • 相关阅读:
    团队项目第二次冲刺Ⅶ
    团队项目第二次冲刺Ⅷ
    随机生成四则运算式2-NEW+PSP项目计划(补充没有真分数的情况)
    第二周的学习进度情况
    最近关于编程学习的一点小体会
    构建之法阅读笔记02
    随机生成四则运算式2
    本周的学习进度情况
    本学期的阅读计划
    随机生成30道四则运算-NEW
  • 原文地址:https://www.cnblogs.com/amylis_chen/p/6145153.html
Copyright © 2011-2022 走看看