自定义 ASP.NET Core 中间件
ASP.NET Core 中间件实现原理及用法解说
Middleware Class
public class CustomMiddleware{ private readonly RequestDelegate _next; public CustomMiddleware(RequestDelegate next) { if (next == null) { throw new ArgumentNullException(nameof(next)); } _next = next; } public async Task Invoke(HttpContext context) { //下一个中间件执行之前的逻辑处理 await _next(context); //执行下一个中间件(也可不执行) //下一个中间件执行之后的逻辑处理 }}//app.UseMiddleware<CustomMiddleware>();
中间件的总结
- 通过use,run,map,middleware class四种方法使用
- 使用多个中间件时,需注意中间件的顺序
- 在设计中间件时,请遵循“责任分离”原则,即一个中间件只对“单一责任”进行处理,如验证用户、授权等。
- 如果对response body做了修改后,请不要再执行下一个中间件