Вызов компонента промежуточного программного обеспечения по условию Asp.Net Core - PullRequest
0 голосов
/ 26 сентября 2018

Возможно ли запускать промежуточное ПО только для запросов, которые поступают не от js.Потому что у меня есть промежуточное программное обеспечение, которое не создает большого смысла для js-запросов на мой сервер.Есть ли возможные способы проверить, что запрос не является прямым?

Ответы [ 2 ]

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

Для выполнения промежуточного программного обеспечения для конкретного запроса, вы можете попробовать MapWhen .

public void Configure(IApplicationBuilder app)
{
    app.MapWhen(context => context.Request.Query.ContainsKey("branch"),
                           HandleBranch);

    app.Run(async context =>
    {
        await context.Response.WriteAsync("Hello from non-Map delegate. <p>");
    });
}

Чтобы проверить, обрабатываете ли запросы запросы, используйте собственную логику для замены context.Request.Query.ContainsKey("branch").

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

Вы не можете выполнить промежуточное программное обеспечение только для некоторых запросов, но вы можете проверить, чтобы запрос удовлетворял условию в вашем промежуточном программном обеспечении, например, если в запросе присутствует заголовок.

Допустим, ваш js-клиент вызываетВаш API добавляет свой заголовок в каждый запрос, вы можете написать промежуточное программное обеспечение для проверки этого заголовка и выполнения некоторого кода, если заголовок присутствует.

app.Use((context, next) =>
{
    if (context.Request.Headers.Any(h => h.Key == "Custom-Header"))
    {
           DoStuff();
    }

    return next();
})
...