Skip to content

中间件

什么是中间件

通常用于处理和管理请求和响应之间的逻辑。

中间件管道顺序

中间件

csharp
public class SimpleMiddleware
{
    private readonly RequestDelegate _next;

    public SimpleMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        // 处理请求前的逻辑
        Console.WriteLine("Processing request...");
        
        await _next(context); // 调用下一个中间件
        
        // 处理请求后的逻辑
        Console.WriteLine("Processing response...");
    }
}

执行顺序:

  • 请求进入SimpleMiddleware,输出“Processing request...”。
  • 请求传递给控制器,控制器生成响应。
  • 响应返回给SimpleMiddleware,输出“Processing response...”。
  • 最终响应发送到客户端。

ASP.NET Core 中的筛选器

在请求处理管道中的特定阶段之前或之后运行代码。

内置筛选器处理任务,例如:

  • 授权(防止用户访问未获授权的资源)。
  • 响应缓存(对请求管道进行短路出路,以便返回缓存的响应)。

下图展示了筛选器类型在管道中的交互方式:

alt text

更多相关资料可查阅官方文档