C# 添加自定义中间件
首先呢 定义一个类 实现 IMiddleware 接口 就像下面这样

这个方法有两个参数 ,第一个很好理解,就是当前请求的 HttpContext 表示传递请求的一些基本信息,表头、路径、访问的api等等
第二个参数表示请求管道中其余中间件的委托。
简单来说 只有当 请求通过这个中间件时,才会传递到下一个中间件。即管道
下面是一个简单的示例
public class MyMiddleware : IMiddleware { RedisClient redis = new RedisClient("127.0.0.1"); public Task InvokeAsync(HttpContext context, RequestDelegate next) { var myapi = context.Request.Path.Value.ToLower(); var targetapi = "/api/Values/ShopCartsList".ToLower(); if (myapi==targetapi)//是否访问目标api { var token = context.Request.Headers["token"].ToString(); if (!string.IsNullOrEmpty(token)) { if (token == redis.HGet("UserToken", token)) { return next(context);//请求被允许 传递到下一个中间件。 } } return Task.CompletedTask; //否则返回 } return next(context); //未访问目标api 请求被允许 } }
然后嘞 就是program中的配置了

切记 自定义中间件一定要写在跨域中间件的下面
end...

浙公网安备 33010602011771号