Мы настраиваем новое веб-приложение Asp.Net Core 3.0. При аутентификации с использованием Auth0 для этого WebApp приложение пытается получить доступ к .eu.auth0.com с помощью HTTP GET. Чтобы попасть на этот сайт через наш корпоративный прокси-сервер, приложению необходимо отправить http-заголовок User-Agent.
Я пытался добавить пользовательский Http-Message-Handler, который добавляет этот заголовок ко всем запросам авторизации. Backend.
public class CustomHttpMessageHandler : DelegatingHandler {
public CustomHttpMessageHandler() {
InnerHandler = new HttpClientHandler();
}
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) {
request.Headers.Add("User-Agent", "myApp/0.1.0");
return await base.SendAsync(request, cancellationToken);
}
}
Этот обработчик устанавливается в Startup.ConfigureServices ():
services.AddAuthentication(options => {
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options => {
options.SaveToken = true;
options.Authority = domain;
options.Audience = Configuration["Auth0:ApiIdentifier"];
options.BackchannelHttpHandler = new CustomHttpMessageHandler();
});
При отладке этот код запускается и добавляет агента пользователя в запрос. Проблема здесь в том, что приложение отправляет (до GET) HTTP-запрос ОПЦИИ на .eu.auth0.com, который я не могу изменить.
Есть ли способ установить этот Http-заголовок дляпромежуточное ПО авторизации? Или даже глобально? Или я могу предоставить им целый собственный Http-клиент?