mvc的过滤器学习-资料查询
标题:Filtering in ASP.NET MVC
地址:https://docs.microsoft.com/en-us/previous-versions/aspnet/gg416513(v=vs.98)
ASP.NET MVC支持以下类型的操作过滤器:
授权过滤器。这些实现IAuthorizationFilter并做出关于是否执行操作方法的安全决策,例如执行身份验证或验证请求的属性。的AuthorizeAttribute类和RequireHttpsAttribute类是一个授权滤波器的例子。授权过滤器在任何其他过滤器之前运行。
动作过滤器。这些实现IActionFilter并包装动作方法执行。该IActionFilter接口声明了两个方法:OnActionExecuting和OnActionExecuted。OnActionExecuting在action方法之前运行。OnActionExecuted在action方法之后运行,并且可以执行其他处理,例如向action方法提供额外数据,检查返回值或取消action方法的执行。
结果过滤器。这些实现IResultFilter并包装ActionResult对象的执行。IResultFilter声明了两种方法:OnResultExecuting和OnResultExecuted。OnResultExecuting在执行ActionResult对象之前运行。OnResultExecuted在结果之后运行,并且可以执行结果的其他处理,例如修改HTTP响应。所述OutputCacheAttribute类是一个结果滤波器的一个例子。
异常过滤器。这些实现IExceptionFilter并在执行ASP.NET MVC管道期间抛出未处理的异常时执行。异常过滤器可用于记录或显示错误页面等任务。所述HandleErrorAttribute类是一个例外滤波器的一个例子。
的控制器类实现每个过滤接口。您可以通过覆盖控制器的On <Filter>方法来实现特定控制器的任何过滤器。例如,您可以覆盖OnAuthorization方法。可下载示例中包含的简单控制器会覆盖每个过滤器,并在每个过滤器运行时写出诊断信息。您可以在控制器中实现以下On <Filter>方法:
ASP.NET MVC中提供的过滤器
ASP.NET MVC包括以下过滤器,这些过滤器作为属性实现。可以在操作方法,控制器或应用程序级别应用过滤器。
AuthorizeAttribute。通过身份验证和可选的授权来限制访问。
HandleErrorAttribute。指定如何处理操作方法引发的异常。
注意
除非在Web.config文件中启用了customErrors元素,否则此过滤器不会捕获异常。
OutputCacheAttribute。提供输出缓存。
RequireHttpsAttribute。强制通过HTTPS重新发送不安全的HTTP请求。
如何创建过滤器
您可以通过以下方式创建过滤器:
覆盖一个或多个控制器的On <Filter>方法。
创建一个派生自ActionFilterAttribute的属性类,并将该属性应用于控制器或操作方法。
使用过滤器提供程序(FilterProviders类)注册过滤器。
使用GlobalFilterCollection类注册全局过滤器。
过滤器可以实现抽象的ActionFilterAttribute类。某些过滤器(如AuthorizeAttribute)直接实现FilterAttribute类。始终在操作方法运行之前调用授权过滤器,并在所有其他过滤器类型之前调用。其他操作过滤器(如OutputCacheAttribute)实现抽象ActionFilterAttribute类,该类允许操作过滤器在操作方法运行之前或之后运行。
您可以使用操作方法或控制器以声明方式使用filter属性。如果属性标记控制器,则操作筛选器将应用于该控制器中的所有操作方法。
以下示例显示了HomeController类的默认实现。在示例中,HandleError属性用于标记控制器。因此,过滤器适用于控制器中的所有操作方法。
mvc的过滤器学习-资料查询的更多相关文章
- MVC不错的学习资料
MVC不错的学习资料: http://www.cnblogs.com/darrenji/
- ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料
本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/ 谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三. ...
- .NET Core 学习资料精选:进阶
.NET 3.0 这个月就要正式发布了,对于前一篇博文<.NET Core 学习资料精选:入门>大家学的可还开心?这是本系列的第二篇文章:进阶篇,喜欢的园友速度学起来啊. 对于还在使用传统 ...
- 【转】iOS超全开源框架、项目和学习资料汇总
iOS超全开源框架.项目和学习资料汇总(1)UI篇iOS超全开源框架.项目和学习资料汇总(2)动画篇iOS超全开源框架.项目和学习资料汇总(3)网络和Model篇iOS超全开源框架.项目和学习资料汇总 ...
- iOS超全开源框架、项目和学习资料汇总--数据库、缓存处理、图像浏览、摄像照相视频音频篇
iOS超全开源框架.项目和学习资料汇总--数据库.缓存处理.图像浏览.摄像照相视频音频篇 感谢:Ming_en_long 的分享 大神超赞的集合,http://www.jianshu.com/p/f3 ...
- Wmyskxz文章目录导航附Java精品学习资料
前言:这段时间一直在准备校招的东西,所以一晃眼都好长时间没更新了,这段时间准备的稍微好那么一点点,还是觉得准备归准备,该有的学习节奏还是要有..趁着复习的空隙来整理整理自己写过的文章吧..好多加了微信 ...
- 【微服务】使用spring cloud搭建微服务框架,整理学习资料
写在前面 使用spring cloud搭建微服务框架,是我最近最主要的工作之一,一开始我使用bubbo加zookeeper制作了一个基于dubbo的微服务框架,然后被架构师否了,架构师曰:此物过时.随 ...
- .NET Core 学习资料精选:入门
开源跨平台的.NET Core,还没上车的赶紧的,来不及解释了-- 本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料.我进行了知识点归类,让大家可以更清晰的学习.NET Co ...
- MVC系列——MVC源码学习:打造自己的MVC框架(四:了解神奇的视图引擎)
前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾. ...
随机推荐
- SQLAlchemy Table(表)类方式 - Table类和Column类
Table 构造方法 Table(name, metadata[, *column_list][, **kwargs]) 参数说明: name 表名 metadata 元数据对象 column_lis ...
- django中间件-12
目录 自定义中间件 函数定义 类定义 中间件的执行顺序 在django中,中间件其实就是一个类,他是一个可以介入django的 request 和 response 的钩子框架,在请求响应不同的阶段, ...
- lua函数定义
FuncState proto结构数组保存函数原型信息;prev保存父函数体指针:actvar保存定义的局部变量:upvalues保存upvalue Lua源码中,专门有一个结构体FuncState用 ...
- 2017-2018-1 20155313 《信息安全系统设计基础》 Myod
2017-2018-1 20155313 <信息安全系统设计基础> Myod Myod要求 1.复习c文件处理内容 2.编写myod.c 用myod XXX实现Linux下od -tx - ...
- 准确率,召回率,F值
下面简单列举几种常用的推荐系统评测指标: 1.准确率与召回率(Precision & Recall) 准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量.其中精度 ...
- [Deep-Learning-with-Python]神经网络入手学习[上]
神经网络入手[上] [x] 神经网络的核心部分 [x] Keras介绍 [ ] 使用Keras解决简单问题:分类和回归 神经网络剖析 神经网络的训练与下列对象相关: 网络层Layers,网络层结合形成 ...
- HDU - 5289 Assignment (RMQ+二分)(单调队列)
题目链接: Assignment 题意: 给出一个数列,问其中存在多少连续子序列,使得子序列的最大值-最小值<k. 题解: RMQ先处理出每个区间的最大值和最小值(复杂度为:n×logn),相 ...
- Spring学习(十九)----- Spring的五种事务配置详解
前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. ...
- @RestController注解
@RestController注解其实就是@@Controller和@ResponseBody的组合:RESTFUL风格 看下源码: 当@ResponseBody放到Controller类上,改Con ...
- nGrinder性能测试平台的安装部署
1.从GitHub下载war包: https://github.com/naver/ngrinder/releases 2.把ngrinder-controller-3.4.2.war重命名为ngri ...