过滤器概念

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

1、过滤器(Filters)就是向请求处理管道中注入额外的逻辑。提供了一个简单而优雅的方式来实现横切关注点。

2、所谓的过滤器(Filters),MVC框架里面的过滤器完全不同于ASP.NET平台里面的Request.Filters和Response.Filter对象,它们主要是实现请求和响应流的传输。通常我们所说的过滤器是指MVC框架里面的过滤器。

3、过滤器可以注入一些代码逻辑到请求处理管道中,是基于C#的Attribute的实现。当负责调用Action的类ControllerActionInvoker在调用执行Action的时候会检查Action上面的Attribute并查看这些Attribute是否实现了指定的接口,以便进行额外的代码注入处理

过滤器分类

MVC支持的过滤器类型有四种,分别是:Authorization(授权),Action(行为),Result(结果)和Exception(异常)。如下表,

过滤器类型

接口

描述

Authorization

IAuthorizationFilter

此类型(或过滤器)用于限制进入控制器或控制器的某个行为方法

Exception

IExceptionFilter

用于指定一个行为,这个被指定的行为处理某个行为方法或某个控制器里面抛出的异常

Action

IActionFilter

用于进入行为之前或之后的处理

Result

IResultFilter

用于返回结果的之前或之后的处理

但是默认实现它们的过滤器只有三种,分别是Authorize(授权),ActionFilter,HandleError(错误处理);各种信息如下表所示

过滤器

类名

实现接口

描述

ActionFilter

AuthorizeAttribute

IAuthorizationFilter

此类型(或过滤器)用于限制进入控制器或控制器的某个行为方法

HandleError

HandleErrorAttribute

IExceptionFilter

用于指定一个行为,这个被指定的行为处理某个行为方法或某个控制器里面抛出的异常

自定义

ActionFilterAttribute

IActionFilter和IResultFilter

用于进入行为之前或之后的处理或返回结果的之前或之后的处理

ASP.NET MVC的过滤器笔记相关推荐

  1. ASP.NET MVC 2 学习笔记二: 表单的灵活提交

    ASP.NET MVC 2 学习笔记二:  表单的灵活提交 前面说到有做到公司内部的一个请假系统,用的是ASP.NET MVC 2+Entity Framework.虽然EF(Entity Frame ...

  2. ASP.NET MVC动作过滤器

    ASP.NET MVC中包含以下4种不同类型的Action Filter: 类型 使用时机 接口 实现方法 授权过滤器(Authorization Filter) 在执行任何Filter或Action ...

  3. ASP.NET MVC 个人学习笔记之 Controller传值

    2019独角兽企业重金招聘Python工程师标准>>> //ControllerViewBag.Message = "Modify this template to jum ...

  4. asp.net mvc 利用过滤器进行网站Meta设置

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

  5. ASP.NET MVC 4 过滤器(Authorize)

    Authorize特性类AuthorizeAttribute就称作MVC的Filter,它在横向为MVC框架扩展功能,让我们可以更方便的处理日志.授权.缓存等而不影响纵向主体功能. Authoriza ...

  6. 精通 ASP.NET MVC 4 学习笔记(一)

    这里记录着从 P132 到 P192 的内容.水分很足,大部分是书上的代码,我只加了一些基于我自己的理解的能帮助初学者看懂的注释,并且把书中的部分内容做了一些的拓展. 建立数据层 设置 DI 容器 / ...

  7. ASP.Net MVC OA项目笔记三

    1.1.1 业务层和数据层之间加一个数据会话层,封装所有数据操作类实例的创建(工厂类) 工厂类是负责对象的创建 作用:将BLL和DAL解耦了,提供一个数据访问的统一访问点 数据会话层DBSession ...

  8. [MVC]Asp.net MVC中的Session

    [MVC]Asp.net MVC中的Session 2008年12月9日 分类: ASP.NET, ASP.NET MVC, C#, 开发笔记 最近使用ASP.NET MVC 中的Controller ...

  9. ASP.NET MVC AuthorizeAttribute

    AuthorizeAttribute 是 ASP.NET MVC 的过滤器之一,又称为认证和授权过滤器,即判断登录与否授权与否.当为某个控制器或动作方法附加该特性时,没有登录或授权的账户是不能访问对应 ...

最新文章

  1. linux下软件安装与yum源码库的设置
  2. 【[CQOI2018]交错序列】
  3. 如何选择一个Linux发行版本
  4. go编译go-gtk报错
  5. c#读取MP3、wmv等格式歌曲信息
  6. linux程序已经在后台运行冻结了_让linux下程序永远后台运行
  7. (转) mp4编码全介绍 (一)
  8. GitHub 使用入门,创建仓库、添加分支...
  9. Linux C语言写的超级简单端口扫描器
  10. JS动态添加Html
  11. postgresql中recovery.conf分析
  12. 【操作系统的目标和作用】
  13. 无法确认设备和计算机之间的连接打印机,我无法从计算机上通过USB 进行打印...
  14. 【推荐了解】IPFS--点对点高效传输实践
  15. Linux搭建部落冲突,GitHub - lioyou/nvim-coc: 在Win10上使用WSL安装Ubuntu,并安装neovim+coc.nvim,配置多种语言开发环境......
  16. 关于html5说法错误的是,关于html5说法错误的是()?
  17. 【FTP】linux FTP传文件到windows|ftp的常用命令
  18. 【51nod 3241】【堆】小明和他的同学们
  19. 关于Oracle死锁的知识点总结
  20. 回收站东西会影响计算机速度吗,别不信!删除这些文件,还可以提高电脑反应速度...

热门文章

  1. Alsa中PCM参数设置
  2. gpio_request 原形代码
  3. matlab常用函数——方程函数
  4. R-CNN detection 运行问题及办法
  5. mutable、volatile的使用
  6. ipoo3可以用鸿蒙,iqooneo3支持无线充电吗_iqooneo3可以无线充电吗
  7. python引入redis_使用python向Redis批量导入数据
  8. 【转】漫画:Bitmap算法
  9. IDEA 运行spingboot时出现Process finished with exit code -1073741819 (0xC0000005)
  10. 计算机组成原理——关于数据对齐存储