Asp.net Core过滤器
- Asp.net Core五类过滤器:Authorization Filter、Resource Filter、Acton Filter、Exception Filter、Result Filter。优先级逐次递减。
- 过滤器使用
-
public class GlobalFiler: Attribute,IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
context.Result = new JsonResult("全局权限设置");
} }
public class MyFilter : Attribute,IActionFilter,IOrderedFilter
{
public int Order { get; set; } public void OnActionExecuted(ActionExecutedContext context)
{
} public void OnActionExecuting(ActionExecutingContext context)
{
}
}
//ActionFilterAttribute继承了Attribute、IActionFilter、IOrderedFilter等
public class MyFilter2 : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
//如果失败,页面提示
context.Result = new JsonResult("MyFilter2设置,无权限访问");
}
}
-
- 过滤器注册,分为两种:全局注册和用Attribute区域注册,用在特定Action上。
- 全局注册Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(config => config.Filters.Add(new GlobalFiler()));
//services.AddMvc(config => config.Filters.Add(typeof(GlobalFiler)));
} - 区域注册
[Route("api/[controller]")]
[MyFilter(Order = )]
public class ValuesController : Controller
{
// GET api/values
[HttpGet]
[MyFilter2(Order = )]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
- 全局注册Startup.cs
- 过滤器执行顺序
- 默认执行顺序:全局过滤器优先于控制器过滤器,控制器过滤器优先于Action方法过滤器。
- 通过IOrderedFilter覆盖默认执行顺序,此接口公开Order属性表示优先级,Order值越小优先级越高。
参考文档:https://www.cnblogs.com/tdfblog/p/filters-in-aspnet-core-mvc.html
Asp.net Core过滤器的更多相关文章
- ASP.NET Core 过滤器中使用依赖注入
如何给过滤器ActionFilterAttribute也用上构造函数注入呢? 一般自定义的过滤器直接用特性方式标识就能使用 [ContentFilter] 因为构造函数在使用的时候要求传参,然后我们可 ...
- 理解ASP.NET Core - 过滤器(Filters)
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 Filter概览 如果你是从ASP.NET一路走过来的,那么你一定对过滤器(Filter)不陌 ...
- asp.net core过滤器记录响应对象
百度到的基本上就是读取response.body的流.然后记录完了之后,把流的index重新复位,这样也太麻烦了. 其实asp.net core团队肯定已经考虑到了这种需求,比如记录请求响应日志.给响 ...
- ASP.NET Core 过滤器
继承Attribute,IActionFilter实现自己的过滤器类,并且在Startup,mvc服务中注入. 全局都会过滤,在任意一个controller,action执行前和执行后都会过滤一次 通 ...
- Asp.Net Core Filter 深入浅出的那些事-AOP
一.前言 在分享ASP.NET Core Filter 使用之前,先来谈谈AOP,什么是AOP 呢? AOP全称Aspect Oriented Programming意为面向切面编程,也叫做面向方法编 ...
- ASP.NET Core 中间件自定义全局异常处理
目录 背景 ASP.NET Core过滤器(Filter) ASP.NET Core 中间件(Middleware) 自定义全局异常处理 .Net Core中使用ExceptionFilter .Ne ...
- 在 ASP.NET Core 中自动启用 CAP 事务
本篇文章旨在描述如何在 ASP.NET Core项目中并以一种简便的方式启用CAP事务,因为在我们的示例中都是直接演示比较直观的方式,没有进行封装,有些初学者同学不太会,找到问我如何封装,本篇文章主要 ...
- ASP.NET Core MVC 过滤器介绍
过滤器的作用是在 Action 方法执行前或执行后做一些加工处理.使用过滤器可以避免Action方法的重复代码,例如,您可以使用异常过滤器合并异常处理的代码. 过滤器如何工作? 过滤器在 MVC Ac ...
- asp.net core MVC 全局过滤器之ExceptionFilter异常过滤器(一)
本系类将会讲解asp.net core MVC中的内置全局过滤器的使用,将分为以下章节 asp.net core MVC 过滤器之ExceptionFilter异常过滤器(一) asp.net cor ...
随机推荐
- 部分流媒体协议及流媒体开发框架vitamio
流媒体协议部分RTP.RTCP.RTSP.MMS.HLS.HTTP progressive streaming 流媒体协议:(RTP.RTCP.RTSP.MMS.HLS.HTTP progress ...
- vs2010 出现“未能将 ProteusDebugEngine 调试器附加到计算机”
vs2010 打开项目时出现如下图错误,解决方法: 1.查看C:\Progream Files下的Internet Explorer文件夹还在不在,不在则会出现此问题: 2.可以右键项目属性-调试-勾 ...
- 「小程序JAVA实战」小程序的视频展示页面初始化(63)
转自:https://idig8.com/2018/09/24/xiaochengxujavashizhanxiaochengxudeshipinzhanshiyemianchushihua62/ 进 ...
- AES 加密算法 跨语言
aes加密算法 delphi .java.c# .网页在线工具 4个相同 AES/ECB/PKCS5Padding 与网页在线工具加密结果相同 http://tool.chacuo.net/crypt ...
- Spring cloud 分布式锁
https://github.com/easonstudy/springboot_demo study目录中
- 使用 Zend_Studio 开发
之前一直用vim 写PHP, 总觉得IDE的一大堆没有用的插件非常麻烦,所以一直避免使用Zend_Studio.不过随着PHP的发展和框架的发展,以及个人的发展,最后还是回到的IDE的时代. 在使用Z ...
- nginx 配置ajax跨域访问php接口
在nginx.conf里面,找到server项,并在里面添加如下配置 location ~ \.php?($|/) { #try_files $uri =; #handel cosr by mao a ...
- 02-SSH综合案例:需求分析(后台)
1.1.7 用户模块:(后台) 不用添加了,添加的话在前台就注册了. 查询所有用户: 修改用户信息: 删除用户信息: 1.1.8 一级分类:(后台) 主要都还是增删改查的操作 查询所有一级分类: ...
- IPMI总结
http://www.chenshake.com/summary-of-ipmi/ 记忆的很清楚,2000年的时候,当时还是Compaq,推出第一款远程控制卡,当时听起来非常神奇.可以远程开机,关机, ...
- A survey of best practices for RNA-seq data analysis RNA-seq数据分析指南
A survey of best practices for RNA-seq data analysis RNA-seq数据分析指南 内容 前言 各位同学/老师,大家好,现在由我给大家讲讲我的文献阅读 ...