中间件是.NET Web API中处理HTTP请求的核心组件,按注册顺序在管道中执行,用于实现日志、认证、授权、CORS等功能。通过UseRouting、UseAuthentication、UseAuthorization等内置中间件及自定义中间件(如请求耗时记录),可构建安全高效的请求处理流程,其中执行顺序至关重要,例如UseRouting必须位于UseAuthorization之前,异常处理中间件应置于开头以捕获全局异常。

在 .NET Web API 中,中间件(Middleware)是处理 HTTP 请求和响应的核心机制。它位于客户端与控制器之间,按顺序执行,可用于日志记录、身份验证、异常处理、CORS 配置等通用任务。合理使用中间件能提升应用的可维护性和安全性。
中间件是一段代码,用来在请求管道中处理每个进入的 HTTP 请求或响应。它们按注册顺序依次执行,形成一个“管道”。每个中间件可以选择是否将请求传递给下一个组件。
常见内置中间件包括:
你可以编写自己的中间件来实现特定逻辑,比如请求日志、性能监控或请求头检查。
步骤如下:
示例:记录请求耗时的中间件
public class RequestTimeLoggerMiddleware
{
    private readonly RequestDelegate _next;
    private readonly ILogger<RequestTimeLoggerMiddleware> _logger;
<pre class='brush:php;toolbar:false;'>public RequestTimeLoggerMiddleware(RequestDelegate next, ILogger<RequestTimeLoggerMiddleware> logger)
{
    _next = next;
    _logger = logger;
}
public async Task InvokeAsync(HttpContext context)
{
    var startTime = DateTime.Now;
    await _next(context);
    var duration = DateTime.Now - startTime;
    _logger.LogInformation($"请求 {context.Request.Path} 耗时: {duration.TotalMilliseconds}ms");
}}
扩展方法封装(推荐做法):
public static class RequestTimeLoggerExtensions
{
    public static IApplicationBuilder UseRequestTimeLogger(this IApplicationBuilder app)
    {
        return app.UseMiddleware<RequestTimeLoggerMiddleware>();
    }
}
.NET 6 及以上版本使用 Minimal API 模式,在 Program.cs 中直接配置中间件顺序。
注意:顺序至关重要,例如 UseRouting() 必须在 UseAuthorization() 之前。
示例配置:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
<p>app.UseExceptionHandler("/error"); // 异常处理
app.UseCors(policy => policy.AllowAnyOrigin().AllowAnyMethod()); // CORS
app.UseAuthentication(); // 认证
app.UseAuthorization(); // 授权
app.UseRouting(); // 路由解析</p><p>// 使用自定义中间件
app.UseRequestTimeLogger();</p><p>app.MapControllers(); // 映射控制器</p><p>app.Run();</p>如果中间件只针对特定路径,可以使用 Map 或 UseWhen:
app.Map("/api", apiApp =>
{
    apiApp.UseRequestTimeLogger();
    apiApp.MapControllers();
});
中间件的注册顺序决定其执行顺序。以下是一些关键规则:
错误示例(顺序错误):
app.UseAuthorization(); app.UseRouting(); // 错误:应在 UseAuthorization 前调用 UseRouting
正确顺序:
app.UseRouting(); app.UseAuthentication(); app.UseAuthorization();
基本上就这些。只要理解中间件的执行流程和顺序依赖,就能灵活构建高效、安全的 Web API 请求处理管道。
以上就是.NET Web API中如何使用中间件(Middleware)_中间件使用配置指南的详细内容,更多请关注php中文网其它相关文章!
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
                
                                
                                
                                
                                
                                
                                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号