Asp.net mvc基础(十二)过滤器Filter
AOP(面向切面编程)是一种架构思想,用于把公共的逻辑放到一个单独的地方,这样就不用每个地方都写重复的代码了。相当于:一夫当关,万夫莫开
在Asp.net mvc中提供了四种过滤器接口实现了这种AOP机制,分别是:IAuthorizationFilter,IActionFilter,IResultFilter,IExceptionFilter
注意:每次执行Action方法的时候,都会执行过滤器
1.IAuthorizationFilter
场景:一般用来检查当前用户是否有Action的执行权限,在每个Action被执行前执行OnAuthorization方法
使用方法:
1.创建一个实现IAuthorizationFilter接口的类

2.添加类到Global.asax中

参考案例:登录系统




filterContext.ActionDescriptor.ActionName 获取要执行的Action的名字。
filterContext.ActionDescriptor.ControllerDescriptor.ControllerName 获取要执行的Controller的名字。
filterContext.Result如果赋值了,那么就不会再执行Action了,而是以"filterContext.Result"的值作为执行结果。
filterContext.HttpContext.Response.Redirect("地址"); 和filterContext.Result不同,这句执行完,还是会执行Action方法的。

在过滤器中推荐使用:filterContext.Result = new RedirectResult("路径");
2.IActionFilter
IActionFilter也是在每个Action被执行前执行OnActionExecuting方法,每个Action执行完毕后再执行OnActionExecuted方法。和IAuthorizationFilter的区别是IAuthorizationFilter再IActionFilter之前执行。
3.IResultFilter
IResultFilter是在每个ActionResult的前后执行IResultFilter。
4.IExceptionFilter
当Action执行发生未处理异常的时候执行OnException方法
获取异常代码:Exception ex=filterContext.Exception
总结:只需要编写一次,在其他地方就可以执行了。
Asp.net mvc基础(十二)过滤器Filter的更多相关文章
- ASP.NET MVC 第六回 过滤器Filter
在Asp.netMvc中当你有以下及类似以下需求时你可以使用Filter功能 判断登录与否或用户权限 决策输出缓存 防盗链 防蜘蛛 本地化与国际化设置 实现动态Action Filter是一种声明式编 ...
- ASP.NET MVC 4 (十二) Web API
Web API属于ASP.NET核心平台的一部分,它利用MVC框架的底层功能方便我们快速的开发部署WEB服务.我们可以在常规MVC应用通过添加API控制器来创建web api服务,普通MVC应用程序控 ...
- Asp.Net MVC学习总结之过滤器详解(转载)
来源:http://www.php.cn/csharp-article-359736.html 一.过滤器简介 1.1.理解什么是过滤器 1.过滤器(Filters)就是向请求处理管道中注入额外的 ...
- ASP.NET MVC 描述类型(二)
ASP.NET MVC 描述类型(二) 前言 上个篇幅中说到ControllerDescriptor类型的由来过程,对于ControllerDescriptor类型来言ActionDescriptor ...
- ASP.NET MVC Model绑定(二)
ASP.NET MVC Model绑定(二) 前言 上篇对于Model绑定的简单演示想必大家对Model绑定的使用方式有一点的了解,那大家有没有想过Model绑定器是在什么时候执行的?又或是执行的过程 ...
- ASP.NET MVC Model元数据(二)
ASP.NET MVC Model元数据(二) 前言 在上篇中,给大家留个对Model元数据的印象,并没有对Model元数据有过多的讲解,而在本篇中也不会对Model元数据的本身来解释,而是针对于它的 ...
- 表现层及ASP.NET MVC介绍(二)
表现层及ASP.NET MVC介绍(二) 最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和 ...
- ASP.NET MVC中有四种过滤器类型
在ASP.NET MVC中有四种过滤器类型
- ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现
ASP.NET MVC 学习笔记-2.Razor语法 1. 表达式 表达式必须跟在“@”符号之后, 2. 代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...
- SpringBoot系列(十二)过滤器配置详解
SpringBoot(十二)过滤器详解 往期精彩推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件 ...
随机推荐
- System类、Math类、BigInteger与BigDecimal的使用
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成 ...
- 0511-Properties集合
package A10_IOStream; import java.io.*; import java.util.Properties; import java.util.Set; /* java.u ...
- Pyinstaller打包工具
本篇博客主要介绍的是pyinstaller在windows下的基本使用和基础避坑 在windows中使用pyinstaller工具打包时会出现一个问题,在打包列表会看到这样的警告信息: django. ...
- 单机麒麟kylin安装
https://archive.apache.org/dist/kylin/ 2.5.0版本 首先启动hadoop.hive.hbase 并记得设置环境变量 #JDK export JAVA_HOME ...
- initiator 连接target
客户端 检查是否发现 [root@kvm1 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.114.14 1 ...
- 快速集成和使用 solon-flow 规则与流引擎(用 yaml 编写业务规则)
本文参考自:https://www.cnblogs.com/studyjobs/p/18125096 规则引擎技术的主要思想是将应用程序中的业务规则分离出来,业务规则不再以程序代码的形式驻留在系统中, ...
- .NET Core 托管堆内存泄露/CPU异常的常见思路
常见的思路 内存泄露 托管内存暴涨大多数原因都是因为对象被GC Root(stack,gchandle,finalizequeue)持有,所以一直无法释放,所以观察的重点都在对象的可疑GC Root ...
- DeepSeek引发创业的思考
2025年春节最火的就是DeepSeek,就像08年小沈阳的火一样,越来越多的不是Ai这个行业的人开始越来越关注Ai,作为一个一直从事Ai的工作者,看到了ChatGPT的涌现后,中国再次冲出来的中国式 ...
- Leetcode 236. 二叉树的最近公共祖先 & 235. 二叉搜索树的最近公共祖先(Python3)
236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x ...
- autMan奥特曼机器人-内置Redis
autMan内置了redis服务,有的脚本运行需要redis支持 几个注意事项: 启用redis服务后要重启autMan生效,关闭一样的道理. 启用redis服务后会增加约200M的内存占用 多个au ...