zoukankan      html  css  js  c++  java
  • DotNetCore学习-3.管道中间件

    中间件是用于组成应用程序管道来处理请求和响应的组件。管道内的每个组件都可以选择是否将请求交给下一个组件,并在管道中调用下一个组件之前和之后执行一些操作。
    请求委托被用来建立请求管道,并处理每一个HTTP请求。
    管道中的中间件的处理逻辑类似于责任链的处理,当前中间件能够处理的话就处理,不能处理就交给下一个进行处理。
    管道中间件的设定是在Startup类中的Configure函数中设置,根据每个中间件在代码中的前后位置来设定其触发的顺序。
    中间件的顺序通常会影响到请求处理的顺序,因此,对程序的性能、功能和安全都方面都很关键,需要仔细的进行配置。
    每个管道中间件的处理逻辑中,都可以使用next属性来获取下一个管道中间件委托。
    HTTP请求管道中间件的配置有以下三种方式

    • Run
      使用该方法将短路管道,不会再调用下一个管道中间件。因此,该方法只能在管道尾部被调用。
    • Use
      使用该方法向管道中添加中间件,添加顺序即为中间件处理请求的顺序。每个中间件中处理逻辑中可以使用next来获取下一个中间件的委托。
    • Map
      使用该方法用于匹配基于请求路径的请求委托。Map方法只接受路径,并配置单独的中间件管道的功能。即任何基于该路径的请求都会被该中间件所处理。
      ASP.NET Core中内置的中间件包括以下几种:
    • 身份验证Authentication
      需要添加Microsoft.AspNetCore.Identity的程序集引用

    后续学习后再添加学习记录

    • 跨域资源共享CORS
      需要添加Microsoft.AspNetCore.Cors的程序集引用
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors();
    }
    public void Configure(IApplicationBuilder app)
    {
        app.UseCors(builder => builder.WithOrigins("http://example.com"));
    }
    
    • 路由Routing
      需要添加Microsoft.AspNetCore.Routing的程序集引用
    后续学习后再添加学习记录
    • 回话Session
      需要添加 Microsoft.AspNetCore.Session的程序集引用
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDistributedMemoryCache();
        services.AddSession(options =>
        {
            // Set a short timeout for easy testing.
            options.IdleTimeout = TimeSpan.FromSeconds(10);
            options.Cookie.HttpOnly = true;
        });
    }
    public void Configure(IApplicationBuilder app)
    {
        app.UseSession();
    }
    
    • 静态文件
      需要添加Microsoft.AspNetCore.All metapackage的程序集引用
    public void Configure(IApplicationBuilder app)
    {
        app.UseStaticFiles();
    }
    
  • 相关阅读:
    MVC @Url.Action 小示例
    Eclipse快捷键
    MVC视频下载/文件上传
    MySQL数据库备份/导出
    C#文件下载
    C#正则表达式匹配字符串中的数字
    常用的LINQ to SQL 用法
    C# 实现抓取网页内容(一)
    C# 繁体字和简体字之间的相互转换
    我到底会什么??
  • 原文地址:https://www.cnblogs.com/DreamOfLife/p/9401217.html
Copyright © 2011-2022 走看看