返回

ASP.NET Core 中常用的内置中间件

2024-11-18 ASP.NET .NET .NET Core 中间件 1359 0

中间件用于在 HTTP 请求之前和之后添加额外的逻辑。我们可以创建自定义中间件,并且有大量可用的内置中间件可供我们使用。本文旨在解释文件中常见中间件的用途 ,以及一些额外的中间件组件。

1. 静态文件中间件

直接从文件系统提供静态文件,如 HTML、CSS、JavaScript 和图像。

app.UseStaticFiles();

此中间件通常放置在管道的早期,以便有效地提供静态内容,而无需进一步处理。

2. 路由中间件

将传入的 HTTP 请求与应用程序中定义的端点进行匹配。

app.UseRouting();

路由中间件对于将请求定向到适当的控制器或端点至关重要。它应该放在任何依赖于路由信息(如 authorization)的中间件之前。

3. 身份验证中间件

处理用户身份验证、验证用户凭证和建立用户身份。

app.UseAuthentication();

此中间件应放置在授权中间件之前,以确保在执行访问检查之前对用户进行身份验证。

4. 授权中间件

实施访问控制策略,确保经过身份验证的用户具有访问资源所需的权限。

app.UseAuthorization();

授权中间件应放在身份验证中间件之后,以确保只有经过身份验证的用户才能获得授权。

5. CORS 跨域中间件

配置跨域资源共享 (CORS) 策略,以允许或限制从其他域请求的资源。

app.UseCors("AllowAllPolicy");

CORS 中间件对于实现安全的跨域请求至关重要,尤其是在 API 应用程序中。

6. 会话中间件

管理用户会话,允许在多个请求中存储和检索数据。

app.UseSession();

Session 中间件需要在 services 中配置 session 服务。

7. 响应压缩中间件

压缩 HTTP 响应以减少带宽使用并缩短加载时间。

app.UseResponseCompression();

此中间件有利于优化性能,尤其是对于大型响应。

8. 异常处理中间件

提供处理异常和生成错误响应的集中式机制。

app.UseExceptionHandler("/Home/Error"); //Web App
app.UseExceptionHandler(); //API

异常处理中间件应放置在管道的早期,以便从后续中间件中捕获异常。

9. HTTPS 重定向中间件

将 HTTP 请求重定向到 HTTPS,确保安全通信。

app.UseHttpsRedirection();

此中间件对于在生产环境中强制实施 HTTPS 至关重要。

10. HSTS 中间件

强制执行 HTTP 严格传输安全 (HSTS) 标头,指示浏览器仅通过 HTTPS 访问站点。

app.UseHsts();

HSTS 中间件应与 HTTPS 重定向结合使用,以增强安全性。

11. 运行中间件目

定义一个终端中间件委托,该委托处理 HTTP 请求并直接生成响应,而无需将控制权传递给后续中间件。

app.Run();

Run() 用于在 ASP.NET Core 请求处理管道中设置终端中间件。它通常放在 file 的末尾,并负责生成最终响应。

顶部