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也来完善下,也让整个系列相对完整,博主不希望烂尾. ...
随机推荐
- 用NI的数据采集卡实现简单电子测试之5——压控振荡器的测试
本文从本人的163博客搬迁至此. 为了展示连续信号采集的方法,以其外部触发采集功能.我用运算放大器实现了一个最简单的低频压控振荡器(VCO),作为USB-6009采集的信号源.在LabVIEW下编写的 ...
- c++ 双向链表 的查找和删除
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> ...
- python基础学习1-双层装饰器(实现登陆注册)
LOGIN_USER = {"IsLogin":False} def check_login(func): #检查登陆的装饰器 def inner(*args,**kwargs): ...
- 【转载】Free Lunch is Over(免费午餐已经结束了)
原文:Free Lunch is Over(免费午餐已经结束了) 微软C++大师Herb Sutter的文章<The Free Lunch Is Over>翻译,以前自己也经常翻译,但是都 ...
- 4569: [Scoi2016]萌萌哒
4569: [Scoi2016]萌萌哒 链接 分析: 每次给出的两个区间长度是一样的,对应位置的数字也是一样的,那么可以将两两对应的数字用并查集合并,设最后有$cnt$个不同的集合,答案就是$9\ti ...
- ncl 函数源码 gc_inout
转自气象家园论坛 经过不懈努力,终于找到了gc_inout函数的源代码,原来在这个文件里面!一颗赛艇 位置:/ncl_ncarg-6.5.0-src/ni/src/lib/nfpfort/sg_too ...
- Qt-网易云音乐界面实现-5 收藏列表,播放列表实现 QListWidget QTableWidget
先上目前完成的内容吧,发现后面越写越多.在看看点击量,心凉凉. 完成了左侧的导航列表,还有就是右下角的播放列表. //创建的歌单 my_Create_Music_List = new QListWid ...
- Linux(centos7)之更换安装python3(二)
Linux不比window好安装python,折腾了好久,终于成功安装上了python,window上一个安装包完事,可惜Linux上python版本太低不好使,还要更换为3版本,百度了好久,教程上总 ...
- EasyUI系列学习笔记(一)——注册
前面介绍过EasyUI是一个前段框架,开发之前需要导入底层包:我这里采用的是EasyUI 1.4版本~ 今天主要是搭建一个EasyUI的环境,同时做一个登陆页面... 环境搭建 导入需要的文件到项目中 ...
- opengl绘制三角形
顶点数组对象:Vertex Array Object,VAO 顶点缓冲对象:Vertex Buffer Object,VBO 索引缓冲对象:Element Buffer Object,EBO或Inde ...