Držite odvojen .NET handler za svaki proxy račun
Pravite odvojene handlere za istovremene račune umesto zamene WebProxy.Credentials na transportu koji već opslužuje zahteve.
Transport može zadržati objekat pružaoca proxy akreditiva izabran pri stvaranju njegovog upravljača pula. Zamena WebProxy.Credentials nakon toga nije pouzdana operacija prebacivanja računa.
Napravite rutu i račun zajedno pre korišćenja klijenta:
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);Krajnja tačka i akreditivi dolaze iz konfiguracije aplikacije. Napravite drugi handler za drugi identitet; drugi HttpClient koji deli prvi handler deli i njegovu politiku.
Prilagođeni pružalac ICredentials može odgovoriti na kasnije izazove, ali ne može preimenovati uspostavljeni tunel u drugi račun. Dodeljivanje jednog globalnog korisničkog imena/lozinke oko asinhronih poziva ostavlja vreme izazova i vlasništvo računa u sukobu.
Držite ograničen skup klijenata kada je potrebno ponovno korišćenje. Ispraznite stari posao pre odlaganja njegovog transporta. Novi handler po zahtevu troši skupove veza; čuvanje svakog istorijskog računa zauvek ih raste bez granice.