Држите одвојен .NET handler за сваки proxy налог
Правите одвојене handlere за истовремене налоге уместо замене WebProxy.Credentials на транспорту који већ опслужује захтеве.
Транспорт може задржати објекат пружаоца proxy акредитива изабран при стварању његовог управљача пула. Замена 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);Крајња тачка и акредитиви долазе из конфигурације апликације. Направите други handler за други идентитет; други HttpClient који дели први handler дели и његову политику.
Прилагођени пружалац ICredentials може одговорити на касније изазове, али не може преименовати успостављени тунел у други налог. Додељивање једног глобалног корисничког имена/лозинке око асинхроних позива оставља време изазова и власништво налога у сукобу.
Држите ограничен скуп клијената када је потребно поновно коришћење. Испразните стари посао пре одлагања његовог транспорта. Нови handler по захтеву троши скупове веза; чување сваког историјског налога заувек их расте без границе.