美文网首页ASP.NET
.Net Core 3.x MVC 了解中间件

.Net Core 3.x MVC 了解中间件

作者: 单程车票_SJ | 来源:发表于2020-10-15 23:20 被阅读0次

    ASP.NET Core 中的中间件是嵌入到应用管道中用于处理请求和响应的一段代码。

    ASP.NET Core 请求管道包含一系列请求委托,依次调用。 下图演示了这一概念。 沿黑色箭头执行。

    以下 Startup.Configure 方法将为常见应用方案添加中间件组件:

    1.异常/错误处理

        当应用在开发环境中运行时:

            开发人员异常页中间件 (UseDeveloperExceptionPage) 报告应用运行时错误。

            数据库错误页中间件报告数据库运行时错误。

        当应用在生产环境中运行时:

            异常处理程序中间件 (UseExceptionHandler) 捕获以下中间件中引发的异常。

            HTTP 严格传输安全协议 (HSTS) 中间件 (UseHsts) 添加 Strict-Transport-Security 标头。

    2.HTTPS 重定向中间件 (UseHttpsRedirection) 将 HTTP 请求重定向到 HTTPS。

    3.静态文件中间件 (UseStaticFiles) 返回静态文件,并简化进一步请求处理。

    4.Cookie 策略中间件 (UseCookiePolicy) 使应用符合欧盟一般数据保护条例 (GDPR) 规定。

    5.用于路由请求的路由中间件 (UseRouting)。

    6.身份验证中间件 (UseAuthentication) 尝试对用户进行身份验证,然后才会允许用户访问安全资源。

    7.用于授权用户访问安全资源的授权中间件 (UseAuthorization)。

    8.会话中间件 (UseSession) 建立和维护会话状态。 如果应用使用会话状态,请在 Cookie 策略中间件之后和 MVC 中间件之前调用会话中间件。

    9.用于将 Razor Pages 终结点添加到请求管道的终结点路由中间件(带有 MapRazorPages 的 UseEndpoints)。

    以上是常用中间件,下面是4种自定义中间件的方法

    使用 IApplicationBuilder 创建中间件管道

    一、用 Use 将多个请求委托链接在一起。 next 参数表示管道中的下一个委托。 可通过不 调用 next 参数使管道短路。

    输出顺序看图标识


    二、自定义中间件类

    新建中间件类:MyMiddleware.cs

    将自定义中间件配置到请求处理管道中,Startup.cs文件调整:

    将中间件MyMiddleware改成扩展方法:

    新建扩展类MyMiddlewareExtension.cs

    将自定义中间件配置到请求处理管道中,Startup.cs文件调整:


    三、自定义中间件类传入初始参数

    四、IMiddleware

    IMiddleware提供了强类型约束的中间件,其默认实现是MiddlewareFactory,接口定义如下:

    IMiddlewareFactory用于创建IMiddleware实例及对实例进行回收,接口定义:

    自定义IMiddleware类型中间件

    修改MyMiddleware,实现IMiddleware接口:

    将自定义中间件配置到请求处理管道中,Startup.cs文件调整:


    下一章《.Net Core 3.x MVC 内置IOC》

    相关文章

      网友评论

        本文标题:.Net Core 3.x MVC 了解中间件

        本文链接:https://www.haomeiwen.com/subject/sexopktx.html