Asp.net MVC 之过滤器

时间:2022-09-21 17:54:55

整理一下MVC中的几种过滤器,以及每种过滤器是干什么用的

四种过滤器

1、AuthorizationFilter(授权过滤器)

2、ActionFilter(方法过滤器)

3、ResultFilter (结果or内容过滤器)

4、ExceptionFilter(异常处理过滤器)

用途:

1、AuthorizationFilter(授权过滤器) :用于用户登录的时候身份验证。

2、ActionFilter(方法过滤器)    :用于执行的Action需要生成记录或者缓存数据时。

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

4、ExceptionFilter(异常处理过滤器):在Action执行之前或之后或者ActionResult执行之前或之后被执行。在执行中发生异常时,可以使用此Filter指向其它页面来显示错误信息。

几个系统常用的Filter过滤器

1、AcceptVerbs

规定页面的访问形式,如

        [AcceptVerbs(HttpVerbs.Post)]
public ActionResult Example(){
return View();
}

页面只能以Post形式访问,即表单提交。

2、ActionName

规定Action的名称。

应用场景:如果不想用方法名做为Action名,或Action名为关键字的话,如

        [ActionName("class")]
public ActionResult Example(){
return View();
}

3、NonAction

当前方法仅是普通方法不解析为Action

4、OutputCache

为Action添加缓存

       [OutputCache(Duration = , VaryByParam = "*")]
public ActionResult Example()
{
return View();
}

5、ValidateInput

该Action可以接受Html等危险代码(ASP.NET MVC在aspx中设置<%@ Page 的属性无法完成等同任务。)

        [ValidateInput(false)]
public ActionResult Example()
{
return View();
}

6、ValidateAntiForgeryTokenAttribute

用于验证服务器篡改。

        [ValidateAntiForgeryToken]
public ActionResult Example()
{
return View();
}

它们分别继承的接口为:

IAuthorizationFilter 、 IActionFilter 、 IResultFilter 、 IExceptionFilter  另外 这个需要注意一下:HandleErrorAttribute  以及  ActionFilterAttribute  

不同过滤器的执行顺序:

Asp.net MVC 之过滤器

Asp.net MVC 之过滤器的更多相关文章

  1. 使用ASP&period;NET MVC操作过滤器记录日志(转)

    使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_Filte ...

  2. ASP&period;NET MVC &colon; Action过滤器&lpar;Filtering&rpar;

    http://www.cnblogs.com/QLeelulu/archive/2008/03/21/1117092.html ASP.NET MVC : Action过滤器(Filtering) 相 ...

  3. &lbrack;翻译&rsqb; 使用ASP&period;NET MVC操作过滤器记录日志

    [翻译] 使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_ ...

  4. ASP&period;NET MVC动作过滤器

    ASP.NET MVC提供了4种不同的动作过滤器(Aciton Filter). 1.Authorization Filter 在执行任何Filter或Action之前被执行,用于身份验证 2.Act ...

  5. Asp&period;net MVC 权限过滤器实现方法的最佳实践

    在项目开发中,为了安全.方便地判断用户是否有访问当前资源(Action)的权限,我们一般通过全局过滤器来实现. Asp.net MVC 页面中常见的权限判断使用过滤器主要在以下几种情况(根据权限判断的 ...

  6. ASP&period;NET MVC 系统过滤器、自定义过滤器

    一.系统过滤器使用说明 1.OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数.它有以下属性: Duration:缓存的时间,以秒为 ...

  7. Asp&period;Net MVC在过滤器中使用模型绑定

    废话不多话,直接上代码 1.创建MVC项目,新建一个过滤器类以及使用到的实体类: public class DemoFiltersAttribute : AuthorizeAttribute { pu ...

  8. asp&period;net mvc 利用过滤器进行网站Meta设置

    过去几年都是用asp.net webform进行开发东西,最近听说过时了,同时webform会产生ViewState(虽然我已经不用ruanat=server的控件好久了 :)),对企业应用无所谓,但 ...

  9. ASP&period;NET MVC的过滤器

    APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理.这时候就用到了过滤器. MVC支持的过滤器 ...

随机推荐

  1. C&num;基础知识四之override和new的区别

    override override是派生类用来重写基类方法的.调用的派生类方法,如需调用基类方法用base关键字 override不能重写非虚方法或静态方法. override重写必须用abstrac ...

  2. apache&lowbar;fileupload实现文件上传&lowbar;上传多个文件

    1.导包 核心类: DiskFileItemFactory – 设置磁盘空间,保存临时文件.只是一个具类. ServletFileUpload  - 文件上传的核心类,此类接收request,并解析r ...

  3. 20 你应该知道的PHP库

    下面是一些非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法. 图表库 下面的类库可以让你很简的创建复杂的图表和图片.当然,它们需要GD库的支持. pChart – 一个可以创 ...

  4. &period;Net程序员学用Oracle系列&lpar;6&rpar;:表、字段、注释、约束、索引

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.表 1.1.创建表 1.2.修改表 & 删除表 2.字段 2.1.添加字段 2.2.修改字段 & 删除字段 ...

  5. apache日志管理【转】

    web服务器日志轮循比较好的方式有三种:第一种方法是利用Linux系统自身的日志文件轮循机制:logrotate:第二种方法是利用apache自带的日志轮循程序rotatelogs:第三种是使用在ap ...

  6. 《剑指offer》翻转单词顺序列

    本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:

  7. InetAddress类和InetSocketAddress类

    InetAddress 类 封装计算机的 IP 地址,不包含端口号 InetAddress 类常用的方法 1 String getHostAddress() 获得 IP 地址 2 String get ...

  8. Robot Framework 环境安装&lpar;一&rpar;

    1.安装python:https://www.python.org/2.安装python的第三方库:robotframework (1)检查是否支持pip命令. (2)robotframework安装 ...

  9. win10优化工具哪个好

    不少刚安装好win10系统的用户觉得win10系统很卡,这是因为你没有进行win10优化导致的,今天小编就来跟各位介绍几款win10优化,希望对您的优化工作有帮助. 我们安装好电脑操作系统如果直接使用 ...

  10. &lbrack;整理&rsqb;Kadane算法

    仅能操作一次时,需每次观察是否有为负情况置零.多次操作时,仅需判断是否后者大于前者. leetcode 53.121.122 [代码] class Solution { public int maxS ...