ASP.NET MVC的过滤器笔记
过滤器概念
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的过滤器笔记相关推荐
- ASP.NET MVC 2 学习笔记二: 表单的灵活提交
ASP.NET MVC 2 学习笔记二: 表单的灵活提交 前面说到有做到公司内部的一个请假系统,用的是ASP.NET MVC 2+Entity Framework.虽然EF(Entity Frame ...
- ASP.NET MVC动作过滤器
ASP.NET MVC中包含以下4种不同类型的Action Filter: 类型 使用时机 接口 实现方法 授权过滤器(Authorization Filter) 在执行任何Filter或Action ...
- ASP.NET MVC 个人学习笔记之 Controller传值
2019独角兽企业重金招聘Python工程师标准>>> //ControllerViewBag.Message = "Modify this template to jum ...
- asp.net mvc 利用过滤器进行网站Meta设置
过去几年都是用asp.net webform进行开发东西,最近听说过时了,同时webform会产生ViewState(虽然我已经不用ruanat=server的控件好久了 :)),对企业应用无所谓,但 ...
- ASP.NET MVC 4 过滤器(Authorize)
Authorize特性类AuthorizeAttribute就称作MVC的Filter,它在横向为MVC框架扩展功能,让我们可以更方便的处理日志.授权.缓存等而不影响纵向主体功能. Authoriza ...
- 精通 ASP.NET MVC 4 学习笔记(一)
这里记录着从 P132 到 P192 的内容.水分很足,大部分是书上的代码,我只加了一些基于我自己的理解的能帮助初学者看懂的注释,并且把书中的部分内容做了一些的拓展. 建立数据层 设置 DI 容器 / ...
- ASP.Net MVC OA项目笔记三
1.1.1 业务层和数据层之间加一个数据会话层,封装所有数据操作类实例的创建(工厂类) 工厂类是负责对象的创建 作用:将BLL和DAL解耦了,提供一个数据访问的统一访问点 数据会话层DBSession ...
- [MVC]Asp.net MVC中的Session
[MVC]Asp.net MVC中的Session 2008年12月9日 分类: ASP.NET, ASP.NET MVC, C#, 开发笔记 最近使用ASP.NET MVC 中的Controller ...
- ASP.NET MVC AuthorizeAttribute
AuthorizeAttribute 是 ASP.NET MVC 的过滤器之一,又称为认证和授权过滤器,即判断登录与否授权与否.当为某个控制器或动作方法附加该特性时,没有登录或授权的账户是不能访问对应 ...
最新文章
- linux下软件安装与yum源码库的设置
- 【[CQOI2018]交错序列】
- 如何选择一个Linux发行版本
- go编译go-gtk报错
- c#读取MP3、wmv等格式歌曲信息
- linux程序已经在后台运行冻结了_让linux下程序永远后台运行
- (转) mp4编码全介绍 (一)
- GitHub 使用入门,创建仓库、添加分支...
- Linux C语言写的超级简单端口扫描器
- JS动态添加Html
- postgresql中recovery.conf分析
- 【操作系统的目标和作用】
- 无法确认设备和计算机之间的连接打印机,我无法从计算机上通过USB 进行打印...
- 【推荐了解】IPFS--点对点高效传输实践
- Linux搭建部落冲突,GitHub - lioyou/nvim-coc: 在Win10上使用WSL安装Ubuntu,并安装neovim+coc.nvim,配置多种语言开发环境......
- 关于html5说法错误的是,关于html5说法错误的是()?
- 【FTP】linux FTP传文件到windows|ftp的常用命令
- 【51nod 3241】【堆】小明和他的同学们
- 关于Oracle死锁的知识点总结
- 回收站东西会影响计算机速度吗,别不信!删除这些文件,还可以提高电脑反应速度...
热门文章
- Alsa中PCM参数设置
- gpio_request 原形代码
- matlab常用函数——方程函数
- R-CNN detection 运行问题及办法
- mutable、volatile的使用
- ipoo3可以用鸿蒙,iqooneo3支持无线充电吗_iqooneo3可以无线充电吗
- python引入redis_使用python向Redis批量导入数据
- 【转】漫画:Bitmap算法
- IDEA 运行spingboot时出现Process finished with exit code -1073741819 (0xC0000005)
- 计算机组成原理——关于数据对齐存储