我已在我的ASP.NET Core Web-API 2.1应用程序中添加了自定义中间件,仅对于某些请求才需要执行该中间件。问题在于,它总是在管道中执行。
Startup.cs
app.UseWhen(context => context.Request.Path.Value.Contains("AWS"), appBuilder =>
{
app.UseMiddleware<ValidateHeaderHandler>();
});
上面的代码完全忽略了条件,并始终执行ValidateHeaderHandler
中间件。
答案 0 :(得分:2)
您需要在UseMiddleware()
对象上而不是直接在appBuilder
上调用app
方法:
app.UseWhen(context => context.Request.Path.Value.Contains("AWS"), appBuilder =>
{
appBuilder.UseMiddleware<ValidateHeaderHandler>();
});