.net Core中间件

在ASP.NET Core中,中间件可以同时处理传入请求和传出响应。因此,中间件可以处理传入请求并将该请求传递给管道中的下一个中间件以进行下一步处理。如果有一个日志记录中间件,那么它可能只是记录请求的时间,处理完毕后将请求传递给下一个中间件以进行下一步处理。

中间件可以通过传入的HTTP请求来响应HTTP请求。比如,管道中的MVC中间件负责处理对URL/students的请求并返回学生列表信息。

中间件是按照添加到管道的顺序执行的。要以正确的顺序添加中间件,否则应用程序可能无法按预期运行。有时候程序虽然会编译成功,但是依然无法正常使用。

中间件和过滤器

  1. 过滤器是一种特殊类型的中间件,是MVC的一部分,更贴合业务,它们用于在请求处理前后执行一些逻辑,如验证请求参数(对请求的ViewModel进行数据验)、处理响应结果(输出结果进行格式化)、设置 HTTP 头等。

  2. 过滤器可以通过实现特定的接口来定义,并可以通过特定的属性来控制执行顺序。过滤器是用于在请求处理前后执行一些逻辑的轻量级组件,它可以拦截到你Action上下文的一些信息。

  3. 中间件ASP.NET Core这个基础提供的功能,而Filter是ASP.NET MVC中提供的功能。中间件适合处理和业务耦合不大的情况下,如静态文件,Session存储,CORS跨域处理等,中间件无法拦截Action上下文的一些信息。

部分常见中间件

中间件可以自定义属于自己的中间件

注意:中间件是有顺序的有时候报错可能是顺序不对

  1. UseRouting()中间件会检查这个应用中已经注册的端点,并根据路由规则来确定要执行哪个端点,MVCRazor Pages SignalR 等组件通常都会注册端点,以便能够处理 HTTP 请求。如果后续的中间件需要知道这些端点是由谁注册的,它们可以通过 HttpContext 实例来获取相关信息。
  2. UseEndpoints:这个中间件用于定义应用程序的端点。当请求到达这块的时候,这个请求就会被相应的这个端点进行处理。
  3. UseStaticFiles:提供wwwroot文件夹中的静态文件。
  4. UseAuthentication:这个中间件用于身份验证和授权。它支持多种身份验证方案,如 CookiesJWTOAuth 等。 ??????
  5. UseAuthorization:这个中间件用于授权请求的访问权限。它支持基于角色和策略的授权方式。
  6. UseExceptionHandler:这个中间件用于处理应用程序中的异常。它可以捕获应用程序中发生的异常,并返回自定义的错误页面或 JSON 响应。
  7. UseStatusCodePages:这个中间件用于处理 HTTP 状态码。它可以捕获 HTTP 错误状态码,并返回自定义的错误页面或 JSON 响应。
  8. UseCors:这个中间件用于支持跨域资源共享。它可以配置允许的来源、允许的 HTTP 方法、允许的 HTTP 头等选项。
  9. UseSession:这个中间件用于支持会话状态。它可以将会话数据存储在多种后端存储中,如内存、分布式缓存、SQL Server 等。
  10. UseMvc:这个中间件用于支持 MVC 模式。它可以处理控制器和操作方法的请求,生成视图结果并返回响应。
  11. UseResponseCompression:这个中间件用于压缩响应结果。它可以压缩响应的内容,并支持多种压缩算法。
  12. UseHttpCacheHeaders:这个中间件用于配置 HTTP 缓存头。它可以配置客户端缓存策略、服务器缓存策略等选项。
  13. UseSwagger:这个中间件用于支持 Swagger 文档和 UI。它可以自动生成 API 文档,并提供交互式 UI

终端中间件:

终端(Terminal)中间件是指ASP.NET Core应用程序处理请求的最后一个中间件。它负责将响应发送给客户端并结束请求-响应周期。以下是一些常见的终端中间件:

  1. UseStaticFiles():用于提供静态文件(如HTMLCSSJavaScript、图像等)的中间件。它允许应用程序将静态文件直接发送给客户端,而无需经过后续的中间件处理。
  2. UseRouting():用于路由请求的中间件。它根据请求的URL路径将请求传递给适当的处理程序或控制器。
  3. UseAuthentication():用于身份验证的中间件。它处理认证过程,验证用户的身份,并将用户信息添加到请求的上下文中。
  4. UseAuthorization():用于授权的中间件。它根据应用程序的授权策略验证用户是否有权访问请求的资源或执行请求的操作。
  5. UseEndpoints():用于终止请求并将响应发送给客户端的中间件。它将响应结果返回给客户端,并完成请求-响应周期。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值