条件中间件总是被执行

Roh*_*ame 3 c# asp.net-core asp.net-core-webapi

我在我的 ASP.NET Core Web-API 2.1 应用程序中添加了一个自定义中间件,它只需要针对某些请求执行。问题是,它总是在管道中执行。

启动文件

app.UseWhen(context => context.Request.Path.Value.Contains("AWS"), appBuilder =>
{
    app.UseMiddleware<ValidateHeaderHandler>();
});
Run Code Online (Sandbox Code Playgroud)

上面的代码完全忽略了条件并始终执行ValidateHeaderHandler中间件。

prd*_*prd 6

您需要UseMiddleware()appBuilder对象上调用该方法,而不是app直接调用:

app.UseWhen(context => context.Request.Path.Value.Contains("AWS"), appBuilder =>
{
    appBuilder.UseMiddleware<ValidateHeaderHandler>();
});
Run Code Online (Sandbox Code Playgroud)