Ha en egen .NET-handler for hver proxykonto
Lag separate handlere for samtidige kontoer i stedet for å erstatte WebProxy.Credentials på en transport som allerede betjener forespørsler.
En transport kan beholde proxy-påloggingsleverandørobjektet som ble valgt da poolbehandleren 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 påloggingsinformasjonen kommer fra applikasjonskonfigurasjonen. Lag en annen handler for en annen identitet; en annen HttpClient som deler den første handleren, deler også policyen dens.
En egendefinert ICredentials-leverandør kan svare på senere utfordringer, men den kan ikke merke en etablert tunnel om som en annen konto. Å tildele ett globalt brukernavn/passord rundt asynkrone kall lar utfordringstidspunktet og kontoeierskapet stå i konflikt.
Ha 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.