Behold en separat .NET-handler til hver proxykonto
Byg separate handlere til samtidige konti i stedet for at udskifte WebProxy.Credentials på en transport, der allerede betjener anmodninger.
En transport kan beholde det proxy-legitimationsudbyderobjekt, der blev valgt, da dens puljemanager blev oprettet. At udskifte WebProxy.Credentials bagefter er ikke en pålidelig kontoswitch.
Opret ruten og kontoen sammen, før klienten bruges:
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);Slutpunktet og legitimationsoplysningerne kommer fra applikationskonfigurationen. Byg en anden handler til en anden identitet; en anden HttpClient, der deler den første handler, deler også dens politik.
En brugerdefineret ICredentials-udbyder kan svare på senere udfordringer, men den kan ikke omdøbe en etableret tunnel til en anden konto. Tildeling af ét globalt brugernavn/adgangskode omkring asynkrone kald efterlader udfordringstidspunkt og konto-ejerskab i konflikt.
Behold et begrænset sæt klienter, når genbrug er nødvendigt. Dræn gammelt arbejde, før transporten bortskaffes. En ny handler pr. anmodning spilder forbindelsespuljer; at beholde hver historisk konto for evigt får dem til at vokse uden grænse.