asp.net mvc5中增加了一种过滤器类型叫过滤器重写,这种过滤器类型可以在操作或者控制器上忽略更高层次上设置的过滤器类型,它可以重写五种基本的过滤器接口类型:IAuthenticationFilter、IAuthorizationFilter、IActionFilter、IResultFilter、IExceptionFilter,而不是它们具体的实现类。它必须继承IOverrideFilter接口,实现接口中的FiltersToOverride属性,指明要重写的过滤器类型。

如下OverrideAllExceptionFilterAttribute特性重写了异常过滤器类型,那么如果把该过滤器放到控制器上则会忽略掉所有的全局异常过滤器,而如果把该过滤器放到操作上,则会忽略其控制器和全局中设置的所有异常过滤器。

另外,在MVC5.1中,对每一种基本过滤器类型都包含了对应的过滤器重写:OverrideAuthenticationAttribute、OverrideAuthorizationAttribute、OverrideActionFiltersAttribute、OverrideResultFiltersAttribute、OverrideExceptionFiltersAttribute,因此不必自己去实现IOverrideFilter接口,写相应的过滤器重写类型。

  • 重点回顾
  1. 继承FilterAttribute,IOverrideFilter
  2. 重写过滤器返回五种基本过滤器接口,而不返回具体的类
  3. 应用时忽略掉更高层次上设置的对应的过滤器类型

asp.net mvc5中的过滤器重写的更多相关文章

  1. ASP.NET MVC5中的数据注解

    ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证(在服务器端和客户端验证数据的有效性) 数 ...

  2. asp.net mvc5中使用缓存依赖SqlCacheDependency

    缓存是用来提高应用性能,降低服务器压力.适用于数据不易变,数据易通用的情景, 对于动态查询数据,例如数据分析,最好放弃使用缓存.使用缓存最麻烦的就是保持源数据和缓存的中的数据一致. 缓存(Cache) ...

  3. ASP.NET MVC5中的数据注解(转载)

    ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证(在服务器端和客户端验证数据的有效性) 数 ...

  4. 在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

    背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5中创建GridView>中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web ...

  5. [转]在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

    本文转自:http://www.cnblogs.com/powertoolsteam/p/MVC5_GridView_2.html 背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5 ...

  6. 译:在ASP.NET MVC5中如何使用Apache log4net 类库来记录日志

    译文出处:http://www.codeproject.com/Articles/823247/How-to-use-Apache-log-net-library-with-ASP-NET-MVC 在 ...

  7. ASP.NET MVC5中的Model验证

    Model验证是ASP.NET MVC中的重要部分,它主要用于判断输入的数据类型及值是否符合我们设定的规则,这篇文章就介绍下ASP.NET MVC中Model验证的几种方式. 后台验证 DataAnn ...

  8. Asp.net MVC5中Html.DropDownList的使用

    一.静态下拉列表项的绑定 在下拉列表中绑定静态项,我们可以通过 SelectListItem 的集合作为数据源的下拉列表. @Html.DropDownList("dropRoles&quo ...

  9. ASP.NET Core中使用URL重写

    ASP.NET Core 1.1 Preview 1 中新增了 URL Rewriting middleware ,终于可以进行 URL 重写了,实际使用体验一下. 首先要将 ASP.NET Core ...

随机推荐

  1. Python系列之环境安装

    Python可以实现强大的数据爬虫功能,并且数据分析与挖掘挺方便,也提供了大量的库,比如numpy, pands,matplotlib等.尤其,使用Python做机器学习也成了近年来的趋势,有人经常会 ...

  2. Linux学习笔记之一————什么是Linux及其应用领域

    1.1认识Linux  1)什么是操作系统 2)现实生活中的操作系统 win7 Mac Android iOS 3) 操作系统的发展史 (1)Unix 1965年之前的时候,电脑并不像现在一样普遍,它 ...

  3. Shell脚本中实现自动补全功能

    对于Linuxer来说,自动补全是再熟悉不过的一个功能了.当你在命令行敲下部分的命令时,肯定会本能地按下Tab键补全完整的命令,当然除了命令补全之外,还有文件名补全. Bash-completion ...

  4. MobaXterm不能读取C:\Windows\system32作为系统变量

    OS环境:Win7 pro x64 已勾选:Settings-->Terminal-->勾选Use Windows PATH environment 然后在MobaXterm中查看系统变量 ...

  5. CentOS 安装 kafka

    首先确保JDK已正确安装并设置好环境变量 安装Zookeeper 到官网下载: https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ zooke ...

  6. 使用mybatis中的自定义TypeHandler处理PostgreSQL中的Json类型字段

    业务扩展字段在PostgreSQL数据库中经常会使用json格式的数据来存储,然而mybatis默认是没有实现json类型字段对应的TypeHandler,所以一般我们需要自定义mybatis的Typ ...

  7. Spring Boot + Spring Cloud 构建微服务系统(六):熔断监控集群(Turbine)

    Spring Cloud Turbine 上一章我们集成了Hystrix Dashboard,使用Hystrix Dashboard可以看到单个应用内的服务信息,显然这是不够的,我们还需要一个工具能让 ...

  8. leetcode — string-to-integer-atoi

    /** * Source : https://oj.leetcode.com/problems/string-to-integer-atoi/ * * Created by lverpeng on 2 ...

  9. Python程序每日一练习

    问题一:做为Apple Store App独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用Python如何生成200个激活码(或者优惠券)? 简介:通用唯一识别码(英语:Unive ...

  10. PowerDesigner版本控制器设置权限

    PowerDesigner版本控制权限之前一直在Groups里面设置,一直没有效果,原因终于找出来了,PowerDesigner是要对每个库单独赋权限的,步骤如下: 连接上版本控制,在左侧菜单 Obj ...