中间件类必须含有RequestDelegate 以及一个async 方法
namespace WebApplication1
{
public class MiddleWare
{
private readonly RequestDelegate _requestDelegate;
public MiddleWare(RequestDelegate requestDelegate)
{
_requestDelegate = requestDelegate;
}
public async Task InvokeAsync(HttpContext context)
{
string pwd = context.Request.Query["password"];
if (pwd == "123")//假如路由中的querystring含有password且是123,则让继续访问
{
if (context.Request.HasJsonContentType())
{
context.Items["test"] = "123";
}
await _requestDelegate(context);//继续往下执行
}
else
{
context.Response.StatusCode = 401;
}
}
}
}
注入
app.UseMiddleware<MiddleWare>();
https://www.tutorialsteacher.com/core/how-to-add-custom-middleware-aspnet-core