asp.net core的中间件

中间件是asp.net core的核心,甚至可以说asp.net core web api应用就是一个中间件管道,接口请求和响应一来一回。中间件,就是装配到这个管道中用来处理请求响应的组件。

关于中间件的使用,有三个核心方法:

核心方法

Use

app.Use(async (context, next) =>
{
    //代码
    await next.Invoke();
    //代码
});

Use方法连接管道中的中间件。context参数表示当前请求的上下文信息,next表示管道中的下一个委托。next委托前的代码在请求进来时执行,next委托后的代码在响应出去时执行。

Run

Run委托没有next参数,第一个Run委托作为终端,终止管道,之后的委托都不生效。Run与不调用next参数的Use效果上相同。

app.Run(async context =>
{
    await context.Response.WriteAsync("Hello world");
});

Map

Map用于创建管道分支。基于请求路径的匹配进入不同分支的执行。

app.Map("/path", app =>
{
    //中间件
});

常用内置中间件

asp.net core 为常见应用场景提供了内置中间件,以下摘自msdn

  1. 异常/错误处理
    • 当应用在开发环境中运行时:
    • 当应用在生产环境中运行时:
      • 异常处理程序中间件 (UseExceptionHandler) 捕获以下中间件中引发的异常。
      • HTTP 严格传输安全协议 (HSTS) 中间件 (UseHsts) 添加 Strict-Transport-Security 标头。
  2. HTTPS 重定向中间件 (UseHttpsRedirection) 将 HTTP 请求重定向到 HTTPS。
  3. 静态文件中间件 (UseStaticFiles) 返回静态文件,并简化进一步请求处理。
  4. Cookie 策略中间件 (UseCookiePolicy) 使应用符合欧盟一般数据保护条例 (GDPR) 规定。
  5. 用于路由请求的路由中间件 (UseRouting)。
  6. 身份验证中间件 (UseAuthentication) 尝试对用户进行身份验证,然后才会允许用户访问安全资源。
  7. 用于授权用户访问安全资源的授权中间件 (UseAuthorization)。
  8. 会话中间件 (UseSession) 建立和维护会话状态。 如果应用使用会话状态,请在 Cookie 策略中间件之后和 MVC 中间件之前调用会话中间件。
  9. 用于将 Razor Pages 终结点添加到请求管道的终结点路由中间件(带有 MapRazorPagesUseEndpoints)。
posted @   shanawdj  阅读(100)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示