中间件用于在 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 的末尾,并负责生成最终响应。
如果你喜欢我的文章,请给我一个赞!谢谢