Držite zaseban .NET handler za svaki proxy račun
Gradite zasebne handlere za istovremene račune umjesto zamjene WebProxy.Credentials na transportu koji već opslužuje zahtjeve.
Transport može zadržati objekat pružaoca proxy akreditiva izabran pri stvaranju njegovog upravitelja pula. Zamjena WebProxy.Credentials nakon toga nije pouzdana operacija prebacivanja računa.
Napravite rutu i račun zajedno prije korištenja 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 dijeli prvi handler dijeli 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. Postavljanje jednog globalnog korisničkog imena/lozinke oko asinhronih poziva ostavlja vrijeme izazova i vlasništvo računa u sukobu.
Držite ograničen skup klijenata kada je potrebno ponovno korištenje. Ispraznite stari posao prije odlaganja njegovog transporta. Novi handler po zahtjevu troši pula veza; čuvanje svakog historijskog računa zauvijek ih raste bez granice.