• 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,并将请求重定向的支持
     
     


  • 相关阅读:
    PS_0005:画带颜色在线条框 按住Alt键复制
    零钱兑换(动态规划)
    倒排索引原理和实现
    集群搭建
    java内部类
    nohup &后台运行脚本
    scala构造函数
    spark数据源读取及读数据原理
    安装redis解决公司linux环境的坑
    61、对于employees表中,给出奇数行的first_name
  • 原文地址:https://www.cnblogs.com/cqqinjie/p/13172935.html
Copyright © 2020-2023  润新知