zoukankan      html  css  js  c++  java
  • asp.net core2 mvc 基础教程--中间件

    什么是中间件

    在 ASP.NET Core 中,中间件(Middleware)是一个可以处理 HTTP 请求或响应的软件管道。

    ASP.NET Core请求流程由一系列请求委托组成,如下图所示(执行流程遵循黑色箭头):

    每个委托可以在下一个委托之前和之后执行操作。委托还可以决定不将请求传递给下一个委托,这称为请求管道的短路。短路通常是可取的,因为它避免了不必要的工作。例如,静态文件中间件可以返回一个静态文件的请求,并使管道的其余部分短路。需要在管道早期调用异常处理委托,因此它们可以捕获后面管道的异常。

    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {
            app.Use(async (context, next) =>
                {
                    await context.Response.WriteAsync("进入第一个委托 执行下一个委托之前
    ");
                    //调用管道中的下一个委托
                    await next.Invoke();
                    await context.Response.WriteAsync("结束第一个委托 执行下一个委托之后
    ");
                });
                app.Run(async context =>
                {
                    await context.Response.WriteAsync("进入第二个委托
    ");
                    await context.Response.WriteAsync("Hello from 2nd delegate.
    ");
                    await context.Response.WriteAsync("结束第二个委托
    ");
                });
        }
    }

    上诉代码中讲的app.Use 链接委托 next 调用进入下一个委托 app.Run 终止了管道 管道不会向下执行 管道有正进反出的效果 结果如下

    进入第一个委托 执行下一个委托之前
    进入第二个委托
    Hello from 2nd delegate.
    结束第二个委托
    结束第一个委托 执行下一个委托之后
    中间件的顺序 对安全性,性能是有影响的

    内置中间件

    ASP.NET Core附带的常用中间件组件:

    中间件描述
    Authentication 提供身份验证支持
    CORS 配置跨域资源共享
    Response Caching 提供缓存响应支持
    Response Compression 提供响应压缩支持
    Routing 定义和约束请求路由
    Session,Cookie 提供用户会话管理
    Static Files 为静态文件和目录浏览提供服务提供支持
    URL Rewriting Middleware 用于重写 Url,并将请求重定向的支持
     
     


  • 相关阅读:
    Binary Tree Zigzag Level Order Traversal
    Binary Tree Level Order Traversal
    Symmetric Tree
    Best Time to Buy and Sell Stock II
    Best Time to Buy and Sell Stock
    Triangle
    Populating Next Right Pointers in Each Node II
    Pascal's Triangle II
    Pascal's Triangle
    Populating Next Right Pointers in Each Node
  • 原文地址:https://www.cnblogs.com/cqqinjie/p/13172935.html
Copyright © 2011-2022 走看看