Условное промежуточное ПО всегда выполняется - PullRequest
3 голосов
/ 07 марта 2019

Я добавил специальное промежуточное ПО в свое приложение ASP.NET Core Web-API 2.1, которое должно выполняться только для определенных запросов.Проблема в том, что он всегда выполняется в конвейере.

Startup.cs

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

Код сверху полностью игнорируети всегда выполняет промежуточное ПО ValidateHeaderHandler.

1 Ответ

3 голосов
/ 07 марта 2019

Вам необходимо вызвать метод UseMiddleware() для объекта appBuilder, а не для app напрямую:

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