aspnetcore的中间件
Run会终止中间件继续传递
app.Run(new RequestDelegate(async context =>
{
await Task.Run(() =>
{
context.Response.WriteAsync("被Run截取到了");
});
})); app.Run(new RequestDelegate(async context =>
{
await context.Response.WriteAsync("被Run截取到了");
}));
Use 会继续传递
app.Use(async (context, next) =>
{
context.Response.Headers.Add("ResponseAt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff"));
await next();
});
Map和MapWhen
app.Map("/Test", configuration =>
            {
                configuration.Run(async context =>
                {
                    await context.Response.WriteAsync("Test被截取了");
                });
            });
            app.MapWhen(
                context => context.Request.Path.Value.Contains("Test", StringComparison.CurrentCultureIgnoreCase),
                configuration => configuration.Run(async context =>
                {
                    await context.Response.WriteAsync("带Test的被截取了");
                }));
使用UseMiddleware
public class MyMiddleware
{
private readonly RequestDelegate _next; private readonly ILogger _logger; private readonly string _prefix; public MyMiddleware(RequestDelegate next, ILoggerFactory factory, string prefix)
{
_next = next;
_logger = factory.CreateLogger<MyMiddleware>();
_prefix = prefix;
} public async Task Invoke(HttpContext context)
{
_logger.LogInformation("【" + _prefix + "】" + context.Request.Path.Value);
context.Response.Headers.Add("ResponseAt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff"));
await _next(context);
}
}
app.UseMiddleware<MyMiddleware>("博客");
aspnetcore的中间件的更多相关文章
- AspNetCore开源中间件-VueRouterHistory
		前言 用过VueRouter路由组件的应该都知道,VueRouter有hash和history两种模式.hash模式会在url中插入#,history模式下url则看上去更加简洁美观.如果想要支持hi ... 
- LayIM.AspNetCore Middleware 开发日记(二)预备知识介绍
		前言 开发一个AspNetCore的中间件需要理解RequestDelegate.另外,还需要理解.NET Core中的依赖注入.还有一个就是内嵌资源的访问.例如:EmbeddedFileProvid ... 
- Swagger UI in AspNetCore WebAPI
		Swagger其实包含了三个部分,分别是Swagger Editor文档接口编辑器,根据接口文档生成code的Swagger Codegen,以及生成在线文档的Swagger UI.在AspNetCo ... 
- Asp.Net Core 项目实战之权限管理系统(5) 用户登录
		0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ... 
- 【AspNet Core】Nuget代理网站
		因为访问Nuget太慢,在Dotnet Core RC2发布前,我就基于Asp.Net做了一个Nuget代理网站 这是网站地址:http://nuget.lzzy.net/ Nuget源:http:/ ... 
- Asp.Net Core 项目搭建 基础配置 和MySql 的使用
		一.开发环境准备 1.安装Visual Studio 2015,我这里安装的是专业版. 2.安装.NET Core SDK相关 需要安装 Visual Studio 2015 update3和NET ... 
- ASP.NET Core 2 学习笔记(五)静态文件
		之前的ASP.NET网站,只要把*.html.*.css.*.jpg.*.png.*.js等静态文件放在项目根目录,默认都可以直接被浏览:但ASP.NET Core 小改了浏览静态文件的方式,默认根目 ... 
- ASP.NET Core 2 学习笔记
		之前的ASP.NET网站,只要把*.html.*.css.*.jpg.*.png.*.js等静态文件放在项目根目录,默认都可以直接被浏览:但ASP.NET Core 小改了浏览静态文件的方式,默认根目 ... 
- ASP.NET Core 配置 MVC - ASP.NET Core 基础教程 - 简单教程,简单编程
		原文:ASP.NET Core 配置 MVC - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 MVC 前面几章节中,我们都是基于 ASP.NET 空项目 ... 
随机推荐
- 第K大子集-LH
			题解:搜索+二分 对于每个数有选与不选两种情况.然后我们先搜前一半的状态,每个数选还是不选. 有2^17种,然后我将每种状态拍一个序先存着.然后我再搜后一半的状态,2^18种. 假设后一半某一种情况的 ... 
- Gson小记
			Gson过滤字段,只要在字段前面添加“transient”关键字即可:之前就是因为Channel字段序列化的时候导致了stack over异常. 
- 关系运算符 逻辑运算符 if 语句 switch语句
			1. BOOL类型 BOOL isRightOrNo = YES; isRightOrNo = 56;//可以打印出来,在C语言中,非0即真 printf("%d\n" , isR ... 
- JZ2440 启动NFS网络文件系统_初试led驱动
			http://blog.csdn.net/emdfans/article/details/12260969 u-boot ---> q 修改bootargs变量 默认: bootargs=noi ... 
- IIS及时回收
			在打开的列表中更改以下设置:回收——固定时间间隔(分钟) 改为 0进程模型——闲置超时(分钟) 改为 0 
- 问题:MSChart.exe;结果:微软图表控件MsChart使用方法及各种插件下载地址
			微软图表控件MsChart使用方法及各种插件下载地址 (2012-08-10 17:32:33) 转载▼ 标签: 图表 控件 下载地址 kernel32 微软 it 分类: C# 昨天在网上看到了微软 ... 
- iconv字符转换
			iconv是linux下的编码转换的工具,它提供命令行的使用和函数接口支持 函数接口 iconv函数族的头文件是iconv.h,使用前需包含之.#include <iconv.h> ico ... 
- Spring5.0的第一次尝鲜
			对于这次尝鲜,说白了和Spring5.0的新特性基本没有多大的关系,如果说您不小心进来了,却发发现文章的内容和标题似乎不太匹配,那么我将是非常的抱歉,因为这浪费了您宝贵的时间.但是我还是要说:因为这确 ... 
- Servlet编程实例 续1
			-----------------siwuxie095 在 LoginServlet 中,右键->Open Type Hierar ... 
- pig入门教程(2)
			本文可以让刚接触pig的人对一些基础概念有个初步的了解. 本文的大量实例都是作者Darran Zhang(website: codelast.com)在工作.学习中总结的经验或解决的问题,并且添加了较 ... 
