【问题标题】:Conditional middleware is always executed条件中间件总是被执行
【发布时间】:2019-03-08 02:26:28
【问题描述】:

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

Startup.cs

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

上面的代码完全忽略了条件并且总是执行ValidateHeaderHandler中间件。

【问题讨论】:

    标签: c# asp.net-core asp.net-core-webapi


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-15
      • 2020-06-05
      • 2020-10-09
      • 2021-01-12
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      • 1970-01-01
      相关资源
      最近更新 更多