ASP.NET Core官方常用内置中间件

Asp.NET Core官方内置了20多种中间件供我们使用,在不是复杂需求的情况下,常用的中间件完全能满足我们程序的应用,下面我们介绍一下ASP.NET Core官方常用的10种内置中间件 。.

1、异常处理中间件

    分为两种,在开发环境中使用 UseDeveloperExceptionPage 生产环境使用UseExceptionHandler。

当应用程序在开发环境中运行时,可以使用开发人员异常页中间件( UseDeveloperExceptionPage )报告应用程序运行时的错误。

当应用程序在生产环境中运行时,可以使用生产环境的异常处理中间件( UseExceptionHandler )捕获下面中间件中引发的异常。

使用顺序是在生成错误的组件之前。异常终端或为新应用提供默认网页的终端。

var app = builder.Build();//非开发环境中使用if (!app.Environment.IsDevelopment()){    app.UseExceptionHandler("/Error");    app.UseHsts();}

2、HTTPS重定向中间件

    HTTPS重定向中间件( UseHttpsRedirection )能将HTTP请求重定向到HTTPS,非HTTPS的站点配置非常的方便。

app.UseHttpsRedirection();//注册

3、静态文件中间件

    静态文件中间件( UseStaticFiles )返回静态文件,为提供静态文件和目录浏览提供支持,并简化进一步请求处理。

app.UseStaticFiles(new StaticFileOptions{    FileProvider = new PhysicalFileProvider(           Path.Combine(builder.Environment.ContentRootPath, "MyStaticFiles")),    RequestPath = "/StaticFiles"});//上面代码是MyStaticFiles 目录层次结构通过 StaticFiles URI 段公开//访问MyStaticFiles目录会指向/StaticFiles

4、Cookie中间件

Cookie策略中间件( UseCookiePolicy )。跟踪用户是否同意存储个人信息,并强制实施 cookie 字段(如 secure 和 SameSite)的最低标准。使用顺序是在发出 cookie 的中间件之前。示例:身份验证、会话、MVC (TempData)。

 app.UseCookiePolicy();

5、路由中间件

路由中间件( UseRouting )用于定义和约束请求路由。

app.UseRouting();//的调用将路由匹配中间件配置为在自定义中间件之后运行。app.MapGet("/", () => "Hello World!");//注册的终结点在管道末尾运行。

6、身份认证中间件

身份认证中间件( UseAuthentication )提供身份验证支持。验证通过之后才会允许用户访问安全资源。执行顺序需要在 HttpContext.User 之前, OAuth 回叫的终端。

app.UseAuthentication();

7、授权中间件

授权中间件( UseAuthorization )用于授权验证通过的用户可以访问哪些资源。类似身份认证中间件( UseAuthentication )。执行顺序需要在 HttpContext.User 之前, OAuth 回叫的终端。

app.UseAuthentication();

8、会话中间件

    会话中间件( UseSession )提供对管理用户会话的支持。应用程序使用会话状态,需要在Cookie策略中间件之后和MVC中间件之前调用会话中间件。

app.UseSession();

9、终结点路由中间件

    终结点路由中间件( UseEndpoints )向中间件管道添加终结点执行。实际路径执行的。可以配置我们的默认路由等。注意UseEndpoints 跟UseRouting的区别

app.UseEndpoints(endpoints => {     endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");});

10、跨域请求中间件

    跨域请求中间件(UseCors)可以配置跨域的网站,跨域请求策略可防止恶意站点从另一站点读取敏感数据。使用顺序是 UseCors 的调用必须放在 UseRouting 之后,但在 UseAuthorization 之前。

var  MyAllowSpecificOrigins = "_myAllowSpecificOrigins";//策略名称设置//配置访问站点builder.Services.AddCors(options =>{    options.AddPolicy(name: MyAllowSpecificOrigins,                      policy  =>                      {                          policy.WithOrigins("http://example.com",                                              "http://www.contoso.com");                      });});app.UseCors(MyAllowSpecificOrigins);//注册到中间件

结语

    本文介绍了十种常用的官方中间件,大家可以参考使用。介绍的这些中间件有的是可以扩展使用的,另外需要注意的是中间件有使用顺序的,否则影响使用,篇幅有限这里就不多说了,具体大家可以查看官网文档。