Исключить маршрут из промежуточного программного обеспечения - .net core - PullRequest
0 голосов
/ 15 сентября 2018

У меня в приложении 2 промежуточных ПО.Я хочу исключить один маршрут из этих промежуточных программ.Я попытался создать функции BuildRouter и применить промежуточное программное обеспечение через него, но это не сработало.

public IRouter BuildRouter(IApplicationBuilder applicationBuilder)
{
    var builder = new RouteBuilder(applicationBuilder);

    builder.MapMiddlewareRoute("/api/", appBuilder => {
        appBuilder.ApplyKeyValidation();
        appBuilder.ApplyPolicyValidation();
    });

    return builder.Build();
}

И метод настройки

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseHsts();
    }

    app.UseRouter(BuildRouter(app));

    app.UseHttpsRedirection();
    app.UseMvc();       
}

Но это не работает.

1 Ответ

0 голосов
/ 15 сентября 2018

Вы можете использовать метод расширения MapWhen с отрицательным предикатом:

app.MapWhen(
    httpContext => !httpContext.Request.Path.StartsWithSegments("/pathtoexclude"),
    subApp => subApp.UseMyMiddleware()
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...