SuperAPI AI 工具集

dotnet-middleware-patterns

编程与开发

查看项目

更新于 10-16 07:23

技能介绍

该技能面向 ASP.NET Core 的 HTTP 请求管道,讲解中间件的编写与注册模式。

用途:构建自定义中间件、安排管道顺序、处理短路与异常,以及按条件注册中间件。

主要能力:

  1. 管道顺序:中间件按注册顺序执行,资料给出推荐顺序(异常处理→HSTS→HTTPS 重定向→静态文件→路由→CORS→认证→授权→自定义中间件→终结点执行),并列出常见顺序错误及其后果,例如 UseAuthorization() 放在 UseRouting() 之前会导致授权被跳过,UseCors() 放在 UseAuthorization() 之后会导致预检请求失败。
  2. 自定义中间件类:约定式中间件(构造函数接收 RequestDelegate,实现 InvokeAsync)与基于工厂的 IMiddleware(支持构造函数注入作用域服务,需显式 DI 注册 builder.Services.AddScoped<T>())。
  3. 内联中间件:app.Use(传递)、app.Run(终端)、app.Map(按路径分支)。
  4. 短路逻辑:不调用 next() 提前返回,如 API Key 校验、功能开关。
  5. 请求/响应操作:通过 context.Request.EnableBuffering() 多次读取请求体;用 MemoryStream 替换 context.Response.Body 以捕获响应,但会增加内存开销,不宜用于高吞吐路径。
  6. 异常处理:UseExceptionHandler 应位于最外层;.NET 8+ 支持 IExceptionHandler,可注册多个处理器按序尝试;非异常错误码用 UseStatusCodePages。
  7. 条件中间件:UseWhen(分支后回归主管道)与 MapWhen(终端分支,不回归)。

使用方式:以类或内联委托编写中间件,通过 UseMiddleware<T>() 或扩展方法注册到 Program.cs 管道中。

范围外:认证/授权中间件配置、可观测性中间件、Minimal API 端点过滤器,资料指向其他技能。

限制:资料未提供具体的安装命令、版本要求、性能基准或收费信息。