中间件是 ASP.NET Core 中处理 HTTP 请求和响应的重要组件。通过中间件,可以在请求到达控制器或返回响应之前添加额外的逻辑。ASP.NET Core 提供了丰富的内置中间件,帮助开发者快速实现常见功能。本文将详细介绍常用的内置中间件及其使用场景。
用于直接从文件系统提供静态文件,如 HTML、CSS、JavaScript 和图像。
app.UseStaticFiles();
将传入的 HTTP 请求与定义的端点进行匹配。
app.UseRouting();
用于验证用户身份,处理凭证,并建立用户上下文。
app.UseAuthentication();
用于检查用户是否具有访问资源的权限。
app.UseAuthorization();
配置跨域资源共享策略,控制跨域请求的行为。
app.UseCors("AllowAllPolicy");
管理用户会话,支持在多个请求间存储和检索数据。
app.UseSession();
services
中配置会话服务。压缩 HTTP 响应以减少带宽占用和加载时间。
app.UseResponseCompression();
集中处理异常并生成用户友好的错误响应。
// Web 应用
app.UseExceptionHandler("/Home/Error");
// API 应用
app.UseExceptionHandler();
将 HTTP 请求自动重定向到 HTTPS。
app.UseHttpsRedirection();
通过 HTTP 严格传输安全 (HSTS) 标头强制浏览器仅通过 HTTPS 访问站点。
app.UseHsts();
定义一个终止管道的中间件,直接生成 HTTP 响应。
app.Run(async context =>
{
await context.Response.WriteAsync("Hello, World!");
});
ASP.NET Core 的内置中间件为常见的 Web 开发需求提供了强大的支持。通过合理的顺序配置这些中间件,可以提升应用程序的性能、安全性和可维护性。了解每个中间件的作用及其使用场景,是构建高效 ASP.NET Core 应用的重要基础。
希望本文对您有所帮助,同时欢迎留言!🎉
参考:https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-9.0