.net core中的哪些过滤器
前言
书承接上文,咱们上回说到,.net core中各种日志框架, 今天我讲讲.net core中的内置过滤器吧!
1.什么是过滤器?
ASP.NET Core中的筛选器允许代码在请求处理管道中的特定阶段之前或之后运行,从用户发送一个请求,到控制器处理完,在返回给用户,在这个过程,请求会经历多个中间件,所谓的过滤器,就是在请求过程中,拦截请求,对请求进行处理,例如:权限认证,异常处理等等。如下图所示:
2.过滤器的分类
Authorization过滤器
:这个在所有的过滤器中最先运行,主要功能是检测当前用户是否权限访问,如果没有权限就直接短路(终止请求,返回HTTP:401),不会先下执行。这里需要特别注意一下,因为授权过滤器是最先执行,如果它有异常需要小心处理,因为它不会向下执行,所以不会到Exception过滤器,这点需要注意。Resource过滤器
:这个过滤器是紧跟着Authorization过滤器后面的过滤器,OnResourceExecuting在模型绑定之前运行代码,在管道的其余部分完成之后,OnResourceExecuted运行代码。Action过滤器
:在调用动作方法之前和之后立即运行代码,可以监控并修改传递给操作的参数,同时也能监控并修改返回的结果。(微软说在Razor Pages不支持这个过滤器)Exception过滤器
:将全局策略应用于在写入响应主体之前发生的未处理异常,监听全局的异常处理。Result过滤器
:在执行操作结果之前和之后立即运行代码,紧跟着Action过滤器,对action返回的结果可以进行数据格式转换。
2.1过滤器的执行顺序:
Authorization-->Resource-->Action-->Exception-->Result
2.2客户端发送一个请求到服务端的过程
3.默认执行顺序
先是执行全局,再到控制器,最后到具体的方法,然后返回到控制器,最后到全局。这里说的执行顺序,是过滤器在不同作用域的执行顺序。
4.为什么要使用过滤器?
过滤器的分类我己经介绍完毕,想必大家对过滤器有初步的了解,知道它是什么,能做哪些事,你肯定会有疑问,我们为什么要使用过滤器?
答:当我们客户端向服务端发送请求的时候,如果此时我需要验证用户是否登录,如果不使用过滤器的方式去验证,那在我们每一个发送请求之前,我们都需要去服务端认证当前是否有用户登录,当前的用户是否拥有访问权限,这样需要把同一份验证代码,反复复制,这不仅会增加工作量,一旦有新需求,改动很麻烦,如果使用过滤器去认证,这样只需要修改服务端的代码,就可以达到一劳永逸,即使以后有修改,只需要修改服务端的逻辑即可。
5.总结
至此,我们已经了解过滤器是什么(what),为什么需要使用过滤器(why),过滤器在什么时候用(when),接下来几篇就开始讲讲如何使用(how)。
.net core中的哪些过滤器的更多相关文章
- 文章翻译:ABP如何在EF core中添加数据过滤器
原文地址:https://aspnetboilerplate.com/Pages/Documents/Articles%5CHow-To%5Cadd-custom-data-filter-ef-cor ...
- 第十五节:Asp.Net Core中的各种过滤器(授权、资源、操作、结果、异常)
一. 简介 1. 说明 提到过滤器,通常是指请求处理管道中特定阶段之前或之后的代码,可以处理:授权.响应缓存(对请求管道进行短路,以便返回缓存的响应). 防盗链.本地化国际化等,过滤器用于横向处理业务 ...
- .net core中的哪些过滤器 (Authorization篇)
前言 咱们上篇说到,过滤的简单介绍,但是未介绍如何使用,接下来几篇,我来给大家讲讲如何使用,今天第一篇是Authorization.认证过滤器, 开发环境介绍 开发工具:VS2019 开发环境:.ne ...
- ASP.NET Core中使用自定义MVC过滤器属性的依赖注入
除了将自己的中间件添加到ASP.NET MVC Core应用程序管道之外,您还可以使用自定义MVC过滤器属性来控制响应,并有选择地将它们应用于整个控制器或控制器操作. ASP.NET Core中常用的 ...
- 如何在ASP.NET Core中编写高效的控制器
通过遵循最佳实践,可以编写更好的控制器.所谓的"瘦"控制器(指代码更少.职责更少的控制器)更容易阅读和维护.而且,一旦你的控制器很瘦,可能就不需要对它们进行太多测试了.相反,你可 ...
- [转]ASP.NET Core 中文文档 第四章 MVC(4.3)过滤器
本文转自:http://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-4_4_3-filters.html 原文:Filters 作者:Steve Smith 翻 ...
- ASP.NET Core 中文文档 第四章 MVC(4.3)过滤器
原文:Filters 作者:Steve Smith 翻译:刘怡(AlexLEWIS) 校对:何镇汐 ASP.NET MVC 过滤器 可在执行管道的前后特定阶段执行代码.过滤器可以配置为全局有效.仅对控 ...
- ASP.NET Core中的ActionFilter与DI
一.简介 前几篇文章都是讲ASP.NET Core MVC中的依赖注入(DI)与扩展点的,也许大家都发现在ASP.NET CORE中所有的组件都是通过依赖注入来扩展的,而且面向一组功能就会有一组接口或 ...
- 避免在ASP.NET Core中使用服务定位器模式
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:服务定位器(Service Locator)作为一种反模式,一般情况下应该避免使用,在 ...
随机推荐
- RHSA-2017:1842-重要: 内核 安全和BUG修复更新(需要重启、存在EXP、本地提权、代码执行)
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...
- 2014年 实验一 C2C个人拍卖
实验一 C2C个人拍卖 --实战淘宝 [实验目的] 掌握网上拍卖的基本流程和拍卖平台的运营 [实验条件]⑴.个人计算机一台 ⑵.计算机通过局域网形式接入互联网. ⑶.常用浏览器. [知识准备] 本实 ...
- 多测师浅谈 学员实现价值就是我们的幸福_高级讲师肖sir
学员实现价值就是我们的幸福 作为一名资深的IT高级讲师,在传统的行业IT薪资基本都是过万,作为一名IT培训教师,培养出在不同领域的测试,并且接触各种各样的产品,目前市场流行的比如银行业务系统,语音类系 ...
- 多测师讲解html _有序列表005_高级讲师肖sir
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>有 ...
- 多测师讲解_python_pycharm基本实用操作__保存代码_
pycharm中中保存代码的方式: 方式一: 方式二: 第一步: 第二步:
- iproute2工具
iproute2工具介绍 iproute2是linux下管理控制TCP/IP网络和流量控制的新一代工具包,出现目的是替代老工具链net-tools.net-tools是通过procfs(/proc)和 ...
- 【二分图】HEOI2012 朋友圈
题目内容 洛谷链接 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着. 一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大 ...
- TCP/IP的十个问题
一.TCP/IP模型 TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的 ...
- mac 搭建 Robot Framework
前提介绍,我的mac上python2和python3是都要有的,然后大家可以看看我其他的文章,这些文章虽然很多都是连接,是别人的博客或者资料,但都是自己试过没有问题的,只是比较懒然后就没有自己写. r ...
- UVA 12298 Super Poker II (FFT)
#include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using ...