首页 > 其他分享 >.Net6 web API (ResouceFilter-ActionFilter)

.Net6 web API (ResouceFilter-ActionFilter)

时间:2024-05-24 17:51:12浏览次数:14  
标签:请求 ResouceFilter Filter API 操作方法 Action Net6 执行 public

前沿

net 中的 ResouceFilter 和 ActionFilter  有啥主要区别呢

其实2者都是过滤器

 

在ASP.NET Core中,Resource Filter和Action Filter是两种不同类型的过滤器,

用于在请求处理过程中执行额外的逻辑。它们可以用于对请求和响应进行处理、修改或拦截,

以实现诸如授权、日志记录、异常处理等功能。

 

Resource Filter(资源过滤器)

Resource Filter是在控制器实例化之前或操作方法执行之前执行的过滤器。它对整个请求的生命周期起作用,包括请求的开始和结束阶段。

Resource Filter通常用于处理全局性的逻辑,例如认证、授权、响应缓存等。它可以实现IResourceFilter接口。

Resource Filter的优势包括:

  • 可以全局性地应用到整个应用程序中,对请求的每个阶段都有效。
  • 可以访问请求和响应,对它们进行修改或拦截。

Action Filter(操作过滤器)

Action Filter是在操作方法执行之前和之后执行的过滤器。它主要针对特定的控制器操作方法(Action)。Action Filter可以实现IActionFilter接口。

Action Filter的优势包括:

  • 更加精确地控制过滤器的作用范围,可以针对特定的控制器操作方法进行设置。
  • 可以访问并修改操作方法的参数和结果,对其进行处理。

 

2者的场景和代码

Resource Filter的使用场景:

  • 身份验证和授权:在请求处理之前,检查用户的身份信息,并根据权限决定是否允许访问资源。
  • 响应缓存:在请求处理之后,根据缓存策略对响应进行缓存,提高性能。
public class MyResourceFilter : IResourceFilter
{
    public void OnResourceExecuting(ResourceExecutingContext context)
    {
        // 在处理请求之前执行的逻辑
    }

    public void OnResourceExecuted(ResourceExecutedContext context)
    {
        // 在处理请求之后执行的逻辑
    }
}

Action Filter的使用场景:

  • 日志记录:在操作方法执行之前和之后,记录请求的相关信息,例如请求路径、参数、执行时间等。
  • 异常处理:在操作方法执行期间,捕获并处理操作方法抛出的异常。
public class MyActionFilter : IActionFilter
{
    public void OnActionExecuting(ActionExecutingContext context)
    {
        // 在操作方法执行之前执行的逻辑
    }

    public void OnActionExecuted(ActionExecutedContext context)
    {
        // 在操作方法执行之后执行的逻辑
    }
}

 

标签:请求,ResouceFilter,Filter,API,操作方法,Action,Net6,执行,public
From: https://www.cnblogs.com/yf-html/p/18211447

相关文章

  • 实时识别关键词API接口,将搜索结果提升至新的高度!
      实时识别关键词是一种能够将搜索结果提升至新的高度的API接口。它可以帮助我们更有效地分析文本,并提取出关键词,以便进行进一步的处理和分析。该接口是挖数据平台提供的,有三种模式:精确模式、全模式和搜索引擎模式。不同的模式在分词的方式上有所不同,适用于不同的场景。首......
  • Vue 3 中如何使用全局 API?
    在Vue3中,全局API的使用方式相比Vue2有所变化,主要是由于Vue3引入了CompositionAPI和对Tree-Shaking的优化。以下是一些在Vue3中使用全局API的常见方法:1.创建Vue应用实例在Vue3中,你需要使用createApp方法来创建一个新的Vue应用实例。这是所......
  • net 添加控制器 api
    1.点击 Controllers文件夹,单机右键,选择添加控制器 2.点击确定3.选择api控制器 4.点击确定 5.更具自己需求,修改 [Route("api/[controller]")],我这点噶为 [Route("api/[controller]/[action]")]6.创建api方法publicIActionResultGetProducts(){var......
  • 从0到1搭建.NET Core Web API项目
    1.设置.NET8WebAPI项目概念使用.NETCLI创建新的WebAPI项目。这设置了一个基本的项目结构,包括启动和WeatherForecast控制器作为示例。Program.cs代码示例dotnetnewwebapi-nMyWebApi2.Program.cs—最低限度的API配置概念.NET8延续了最小API的趋......
  • 基于webapi的websocket聊天室(番外二)
    我比较好奇的是webapi服务器怎么处理http请求和websocket请求。有了上一篇番外的研究,这里就可以试着自己写个非常简易的webapi服务器来接收这两种请求。效果http请求消息打印响应解析websocket请求消息打印使用聊天室测试其实两种请求差不多,就只是一些头部字段......
  • THUSC & APIO 2024 游记
    Day\(-\infty\)APIO被补录了?Day\(-\infty+1\)听说要报名THUSC?Day\(-\infty+10^9\)考完期中紧张地跑到机房来看看THU结果,结果学习CCF的左右(Day\(-\infty+10^9+1\)电脑一开屏保,上面赫然一行字:打印报到证-通过差点把心脏吓出来Day\(-1\)不想上whk,我......
  • netcore webapi部署到docker容器,api调用后显示中文乱码
    vs2022webapi部署到docker容器,api调用后显示中文乱码。原因是:源代码文件不是utf-8编码(用vscode打开是乱码,在vscode修改后,再提交,正常)解决方法:在中文环境下用过微软家Visualstudio的都知道,新建文件的保存编码都默认为当前系统语言,所以你的文件编码永远都是GB2312,非常令人蛋......
  • windows下使用redis解决.net6.0下人工调用接口时分配位置的并发问题
    使用了nuget包包括了:CSRedisCore,StackExchange.Redis,MyStack.DistributedLocking,Microsoft.Extensions.Configuration安装Redis并注册为windows服务 直接参考这位兄弟的成果:https://www.cnblogs.com/qingheshiguang/p/17952623注册服务:配置文件appsetting.json中加上Red......
  • PHP做api开发时,签名验证你是怎么设计的
    开发过程中,我们经常会与接口打交道,有的时候是调取别人网站的接口,有的时候是为他人提供自己网站的接口,但是在这调取的过程中都离不开签名验证。我们在设计签名验证的时候,请注意要满足以下几点:可变性:每次的签名必须是不一样的。时效性:每次请求的时效,过期作废等。唯一性:每......
  • Spring Boot中的 6 种API请求参数读取方式
    使用SpringBoot开发API的时候,读取请求参数是服务端编码中最基本的一项操作,SpringBoot中也提供了多种机制来满足不同的API设计要求。接下来,就通过本文,为大家总结6种常用的请求参数读取方式。如果你发现自己知道的不到6种,那么赶紧来查漏补缺一下。如果你知道的不止6种,那么告诉大......