博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DotNetCore学习-3.管道中间件
阅读量:6949 次
发布时间:2019-06-27

本文共 1525 字,大约阅读时间需要 5 分钟。

中间件是用于组成应用程序管道来处理请求和响应的组件。管道内的每个组件都可以选择是否将请求交给下一个组件,并在管道中调用下一个组件之前和之后执行一些操作。

请求委托被用来建立请求管道,并处理每一个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();}

转载于:https://www.cnblogs.com/DreamOfLife/p/9401217.html

你可能感兴趣的文章
linux 下mysql的乱码问题
查看>>
mongodb删除重复数据
查看>>
橡皮泥_愤怒的小鸟
查看>>
CentOS6.5最小化安装,自定义安装包
查看>>
扩展jQuery easyui datagrid增加动态改变列编辑的类型
查看>>
通过Linux shell实现的花生壳动态域名解析(DDNS)
查看>>
Mysql 生成按月份统计SQL语句,为null设置为0
查看>>
1.6的锁优化(适应性自旋/锁粗化/锁削除/轻量级锁/偏向锁)
查看>>
使用 IntraWeb (17) - 基本控件之 TIWRadioButton、TIWRadioGroup、TIWCheckBox
查看>>
CSS解决高度自适应问题
查看>>
Thinkpad ACCESS CONNECTIONS异常解决
查看>>
ubuntu16.04 安装 操作 redis
查看>>
PHP文件上传-单文件上传函数
查看>>
通过SNMP获取接口速率 32位与64位的区别
查看>>
(1)Powershell简介
查看>>
Logtail提升采集性能
查看>>
asp.net5发神经一例 ------无法加载依赖
查看>>
uip中关于web服务器的简单例子
查看>>
Windows 10 ADK 1809 的变更 附下载地址
查看>>
知乎[披萨不就是个大饼铺点肉]问题延伸出的认知风格相关知识
查看>>