Behold en egen .NET-handler for hver proxykonto
Bygg separate handlere for samtidige kontoer i stedet for å erstatte WebProxy.Credentials på en transport som allerede betjener forespørsler.
En transport kan beholde proxy-legitimasjonsleverandørobjektet som ble valgt da puljebehandleren ble opprettet. Å erstatte WebProxy.Credentials etterpå er ikke en pålitelig kontobytte.
Opprett ruten og kontoen sammen før klienten brukes:
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);Endepunktet og legitimasjonen kommer fra applikasjonskonfigurasjonen. Bygg en annen handler for en annen identitet; en annen HttpClient som deler den første handleren, deler også dens policy.
En egendefinert ICredentials-leverandør kan svare på senere utfordringer, men den kan ikke omdøpe en etablert tunnel til en annen konto. Å tildele ett globalt brukernavn/passord rundt asynkrone kall lar utfordringstidspunktet og kontoeierskapet stå i konflikt.
Behold et begrenset sett med klienter når gjenbruk er nødvendig. Tøm gammelt arbeid før transporten avhendes. En ny handler per forespørsel sløser med tilkoblingspooler; å beholde hver historisk konto for alltid får dem til å vokse uten grense.