我已将自定义中间件添加到我的 ASP.NET Core Web-API 2.1 应用程序中,它只需要针对某些请求执行。问题是,它总是在管道中执行。
Startup.cs
app.UseWhen(context => context.Request.Path.Value.Contains("AWS"), appBuilder =>
{
app.UseMiddleware<ValidateHeaderHandler>();
});
上面的代码完全忽略了条件并始终执行 ValidateHeaderHandler
中间件。
最佳答案
您需要在 appBuilder
对象上调用 UseMiddleware()
方法,而不是直接在 app
上调用:
app.UseWhen(context => context.Request.Path.Value.Contains("AWS"), appBuilder =>
{
appBuilder.UseMiddleware<ValidateHeaderHandler>();
});
关于c# - 始终执行条件中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55045821/