Транспорт може зберігати об’єкт постачальника проксі-облікових даних, вибраний під час створення його менеджера пулу. Заміна WebProxy.Credentials після цього не є надійною операцією перемикання облікового запису.

Створіть маршрут і обліковий запис разом, перш ніж використовувати клієнт:

var proxy = new System.Net.WebProxy(proxyEndpoint)
{
    Credentials = new System.Net.NetworkCredential(proxyUser, proxyPassword)
};
var handler = new System.Net.Http.HttpClientHandler
{
    UseProxy = true,
    Proxy = proxy
};
var client = new System.Net.Http.HttpClient(handler);

Кінцева точка й облікові дані беруться з конфігурації застосунку. Для другої особи створіть інший обробник; інший HttpClient, що використовує перший обробник, використовує і його політику.

Користувацький постачальник ICredentials може відповідати на пізніші виклики, але не може перепозначити встановлений тунель як інший обліковий запис. Призначення одного глобального імені користувача/пароля навколо асинхронних викликів залишає час виклику й належність облікового запису в конфлікті.

Коли потрібне повторне використання, тримайте обмежений набір клієнтів. Злийте стару роботу перед звільненням її транспорту. Новий обробник на кожен запит марнує пули з’єднань; зберігання всіх історичних облікових записів назавжди росте їх без межі.

Схожі статті