ASP.NET Core 中的内置中间件你用过哪些?

科技   2024-11-10 05:13   上海  


中间件用于在 HTTP 请求之前和之后添加额外的逻辑。

我们可以创建自定义中间件,并且有大量可用的内置中间件可供我们使用:

简单地添加中间件代码(如本文所示)并不能保证其预期目的将完全实现。可能需要其他服务、配置和逻辑来满足特定的应用程序需求。

本文旨在解释文件中常见中间件的用途 ,以及一些额外的中间件组件。Program.cs

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 Appapp.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 的末尾,并负责生成最终响应。

如果你喜欢我的文章,请给我一个赞!谢谢

架构师老卢
资深软件架构师, 分享编程、软件设计经验, 教授前沿技术, 分享技术资源(每天发布电子书),每天进步一点点...
 最新文章