【朝夕技术专刊】Core3.1WebApi_Filter详解

欢迎大家阅读《朝夕Net社区技术专刊》第4期

我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦!

01

PART

CoreWebApi五大Filter


1. AuthorizeAttribute:权限Filter;
2.IResourceFilter资源Filte;
3.IExceptionFilter/IAsyncExceptionFilter异常Filter;
4.ActionFilterAttribute, IActionFilter, IAsyncActionFilter 行为Filter
5.ResultFilterAttribute, IResultFilter, IAsyncResultFilter 结果Filter

02

PART

CoreFilter比较于.AspNetMVCFilter:

Asp.Net MVC的Filter一共只有三个:ActionFilterAttribute/AuthorizeAttribute/ExceptionFilter,这三个Filter都是进入到Asp.NetMVC框架的Filter;

Core下的Filter新增了资源ResourceFilter;而且执行顺序也有所改变;同时Core环境因为已经全程支持了IOC容器;所以在Filter中也支持了传入参数;以下两个图比较Asp.NetMVCFilter和CoreWebApiFilter的区别:

Asp.NetMVCFilter:可联系助教老师(微信:ZhaoxiNet007)获取代码测试执行;

.NetCoreFilter

03

PART

CoreFilter执行顺序:

在事例代码中分别建立了:可联系助教老师(微信:ZhaoxiNet007)获取代码测试执行;

CustomActionFilterAttribute:

CustomAuthorizeAttribute:

CustomExceptionFilterAttribute:

CustomResourceFilterAttribute:

CustomResultFilterAttribute:

五个Filter;分别标记在FilterController控制器的ShowFilter方法;

此处没有注册CustomAuthorizeAttribute,权限部分在Core中做了大更新;后续出主题文档,此处仅注册CustomActionFilterAttribute、CustomExceptionFilterAttribute、CustomResourceFilterAttribute、CustomResultFilterAttribute,调试结果按照顺序如下图:

图1:测试请求Api:ShowFilter以后,先进入到CustomResourceFilterAttribute中的OnResourceExecuting方法;

图2:再进入到控制器构造函数;说明在构造控制器之前就进入到ResourceFilter中去了;

图3:再进入到CustomActionFilterAttribute中的OnActionExecuting方法;

图4:再进入到FilterControllerK控制器的ShowFilter方法;

图5:再进入到CustomActionFilterAttribute中的OnActionExecuted方法;

图6:再进入到CustomResourceFilterAttribute的OnResourceExecuted方法;

以上六张图详解了Core中的Filter执行顺序:是一个俄罗斯套娃。

关于Core中新增Filter的职责分析:

1. AuthorizationFilter权限Filter:此处虽未注册使用,但是他是最先执行的,并且没有进入到MVC内部;这是Core的大更新,也是大亮点。如果系统需要做授权,那在请求执行方法的时候,应该先判断权限,如果没有权限,后续的动作没有必要进行,更没有必要进入到MVC中去;直接就返回了;代码少走了“冤枉路”,这是一个提高性能的表现;此次文档中没有重于介绍哪几种授权方式,因为在Core中的授权比较复杂,后续有专题文档提供;可联系助教老师(微信:ZhaoxiNet007)获取;

2.ResourceFilter资源Filter,在授权执行后执行,有OnResourceExecuting方法,和OnResourceExecuted方法,此处适合做缓存;可能同学会疑问,如果做缓存在AuthorizationFilter权限Filter中也能实现呢;确实是可以的,不过框架是为了专人做专事,在授权成功以后,专门提供一个Filter来做缓存;

下期预告

【朝夕Net社区技术专刊】第5期:

Filter的各种注册方式,以及如何完成Filter的依赖注入

本期福利

如果看完本文让你有所收获,
别忘转发扩散,和更多人分享学习的快乐!
扫码关注公众号朝夕Net社区回复”第四期“
即可获取本期配套教学视频及课件!

往期内容:

1【朝夕Net社区技术专刊】Core3.1 WebApi集群实战专题---WebApi环境搭建运行发布部署篇

2【朝夕Net社区技术专刊】Core3.1 WebApi集群实战专题-Corre3.1WebApi配置集成日志/配置Swagger

3【朝夕技术专刊】WebApi部署多服务器配置Nginx负载均衡

《朝夕Net社区技术专刊》持续更新,欢迎扫码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

统计学习方法 pdf_机器学习基础教材-《统计学习与数据分析介绍》免费pdf分享...

本书介绍本入门级统计教科书主要讲解发展和培养统计思维所需的基本概念和工具。它提供了描述性,归纳性和探索性的统计方法,并指导读者完成定量数据分析的过程。在实验科学和跨学科研究中,数据分析已成为任何科学研究的组成部分。诸如判断数据…

selenium.common.exceptions.SessionNotCreatedException: Message: session not created全套解决方案

chromedriver版本不匹配 报错: selenium.common.exceptions.SessionNotCreatedException: Message: session not created selenium.common.exceptions.WebDriverException: Message: session not created: 原因: Chrome版本和ChromeDriver版本不一致…

.NET Core开发实战(第18课:日志框架:聊聊记日志的最佳姿势)--学习笔记(上)...

18 | 日志框架:聊聊记日志的最佳姿势源码链接:https://github.com/witskeeper/geektime/tree/master/samples/LoggingSimpleDemo日志框架必要的包:1、Microsoft.Extensions.Logging2、Microsoft.Extensions.Logging.Console3、Microsoft.Exte…

Istio 1.5 发布——拥抱变化,爱上单体

北京时间 2020 年 3 月 6 日凌晨,我们期待已久的 Istio 1.5 发布了,发布公告见 https://istio.io/news/releases/1.5.x/announcing-1.5/。由 ServiceMesher 社区组织翻译的 Istio 官方文档同时发布,见 https://istio.io/zh。Istio 1.5 是一个…

hbuilderx怎么添加断点_【高考语文题库】高考一直提分提不上去该怎么办?同一卷高考押题语文答案,助你再提30分...

大树从来不是在温室里长成的,而是在风霜雪雨的洗礼中参天的……古语云:“工欲善其事,必先利其器。”俗话说:“磨刀不误砍材工。”用到学习上就是学习必须讲究学习方法,有了适合自己的有效学习方法必定会事半功倍。一个…

业务模块化打造单体和分布式部署同步支持方案

我在2019年中国.NET开发者峰会上为大家分享了我们的微服务电商安全工程实践,那次会议分享的高清录播已经上传到我的腾讯课堂,大家可以通过底部的小程序打开直接观看(复习)。在大会上跟大家提到,我们当时只有4个人的创业…

Asp.Net Core EndPoint 终结点路由工作原理解读

Asp.Net Core EndPoint 终点路由工作原理解读一、背景在本打算写一篇关于Identityserver4 的文章时候,却发现自己对EndPoint -终结点路由还不是很了解,故暂时先放弃了IdentityServer4 的研究和编写;所以才产生了今天这篇关于EndPoint (终结点…

[蓝桥杯][算法提高VIP]夺宝奇兵-dp

题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 ”夺宝奇兵”从山下出发,到达山顶,如何选路才能得到最多的珠宝呢?在上图所示例子中,按照5-> 7-> 8-&g…

迁移到其他机器_有赞大数据离线集群迁移实战

‍‍点击关注“有赞coder”获取更多技术干货哦~作者:郭理想 & 任海潮部门:数据中台一、背景有赞是一家商家服务公司,向商家提供强大的基于社交网络的,全渠道经营的 SaaS 系统和一体化新零售解决方案。随着近年来社…

C# 客户端内存优化分析

背景概述C# 开发客户端系统的时候,.net 框架本身就比较消耗内存资源,特别是xp 这种老爷机内存配置不是很高的电脑上运行,所以就需要进行内存上的优化,才能流畅的在哪些低端电脑上运行. 想要对C# 开发的客户端内存优化需要了解以下几个概念。虚拟内存这里…

xshell1分钟就会自动断_手术室自动门不能正常控制开关门维修案例

手术室自动门维修案例遵义市第五人民医院手术室的手术门。用户反映:不能正常控制开关门。一、原因分析:1.红外线安全传感器故障2.控制器故障3.直流电机故障4. 红外感应开关故障5.红外感应探头故障6.电源故障图1图2图3图4图5图6二、维修过程:1…

.NET Core开发实战(第18课:日志框架:聊聊记日志的最佳姿势)--学习笔记(下)...

18 | 日志框架&#xff1a;聊聊记日志的最佳姿势除了使用 CreateLogger 指定 logger 的名称&#xff0c;实际上还可以借助容器来构造 logger&#xff0c;通常情况下我们会定义自己的类namespace LoggingSimpleDemo {public class OrderService{ILogger<OrderService> _lo…

《ASP.NET Core 微服务实战》送书结果公告

如何构建基于.NET Core和云环境下的微服务技术体系&#xff1f;的送书抽奖结果已经出来了&#xff1a;当前只有一位同学填写了地址。其他几位同学抓紧填写&#xff0c;3/9 日还没有完成填写将作废&#xff0c;奖品可是热门的《ASP.NET Core 微服务实战》。另外我公司商城上上线…

2020 年 Service Mesh 技术展望

背景有外文指出&#xff0c;2020 年 Service Mesh 技术将有以下三大发展&#xff1a;快速增长的服务网格需求&#xff1b;Istio 很难被打败&#xff0c;很可能成为服务网格技术的事实标准&#xff1b;出现更多的服务网格用例&#xff0c;WebAssembly 将带来新的可能。针对 Serv…

登录系统_执照管理系统登录与执照转换操作指南

执照管理系统登录与执照转换操作指南注&#xff1a;本操作指南适用于所有已经在CCAR-R2执照管理系统中注册的人员(无论是否参加过考试&#xff0c;无论有无考试通过科目).已经在旧系统中完成注册的人员无需在新系统中再次注册。只有完成本指南中的有关操作&#xff0c;才能正常…

BeetleX之XRPC远程委托调用

BeetleX.XRPC是基于接口的远程通讯组件,它不仅可以把接口提供客户端调用,同样也支持服务端创建客户端的接口实例并主动调用客户端的方法.接口有着非常的规范性和约束性,但前提你是必须制定相应的接口并实现才行;为了让通讯在.NET平台使用变得更简便,在新版中组件支持远程委托调…

常用决策树模型ID3、C4.5、CART算法

决策树概述 决策树&#xff08;decision tree&#xff09;&#xff1a;是一种基本的分类与回归方法&#xff0c;下面提到的ID3、C4.5、CART主要讨论分类的决策树。 在分类问题中&#xff0c;表示基于特征对实例进行分类的过程&#xff0c;可以认为是if-then的集合&#xff0c…

五分钟了解Consul

Hi&#xff0c;大家好&#xff0c;我叫consul&#xff0c;翻译成中文叫做“领事”&#xff0c;其实我更喜欢叫自己为中介&#xff0c;因为我觉得自己做的事情和房产中介非常像。比如说想要卖房的房东到我这边登记&#xff0c;我将房屋信息登录到我的表格中&#xff08;服务注册…

决策树可视化保姆级教程

决策树可视化指南 决策树是机器学习的一种经典的模型&#xff0c;因其泛化性能好&#xff0c;可解释性强而被广泛应用到实际商业预测中。通常在我们完成决策树模型搭建后&#xff0c;我们会进一步研究分析我们搭建好的模型&#xff0c;这时候模型的可视化就显得尤为重要。下面…

如何运用领域驱动设计 - 领域事件

开篇距离发布上一篇该系列的文章好像已经过了快一个半月了&#xff0c;好吧&#xff0c;我托更了????。一晃就已经到了3月份&#xff0c;在这樱花????盛开的季节&#xff0c;终于得重新连载该系列了。在停更的期间时不时会收到大家关于DDD的留言和问题&#xff0c;一旦…