Как заставить HttpClient использовать удостоверение пула приложений - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь сделать http-вызов с веб-сайта A на веб-сайт B, используя идентификационные данные веб-сайта A.

Используя .Net fwk 4.x, мне просто нужно сделать что-то подобное:

using (var client = new HttpClient(new HttpClientHandler { UseDefaultCredentials = true }) {
   // Do something
}

В aspnetcore 2.2 был предоставлен IHttpClientBuilder для управления http-клиентами.

Один и тот же код должен выглядеть примерно так:

services.AddHttpClient("myOtherSite", httpClient => {
                httpClient.BaseAddress = new Uri("http://something");
            })
            .ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler {
                UseDefaultCredentials = true
            });

Тогда мне просто нужно внедрить IHttpBuilder, где мне нужен клиент, затем вызвать clientBuilder.buildClient ("myOtherSite").

При использовании этого http-запрос, кажется, выполняется без пользователя пула, несмотря на документацию ..

Кто-то сделал что-то подобное?

1 Ответ

1 голос
/ 13 мая 2019

Я не уверен, что это ваша проблема, но в Документации Microsoft говорится, что, начиная с ядра 2.1, вместо этого используется класс System.Net.Http.SocketsHttpHandler.

Он содержит информацию о том, как настроить, чтобы разрешить дальнейшее использование HttpClientHandler, но вы можете переключиться или даже попробовать использовать HttpMessageHandler вместо того типа, который вы используете для обработчика в настоящее время.

...