Een transport kan het proxy-referentieproviderobject behouden dat is gekozen toen de poolbeheerder werd gemaakt. WebProxy.Credentials daarna vervangen is geen betrouwbare accountwissel.

Maak de route en het account samen aan voordat de client wordt gebruikt:

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);

Het eindpunt en de referenties komen uit de toepassingsconfiguratie. Bouw een andere handler voor een tweede identiteit; een andere HttpClient die de eerste handler deelt, deelt ook het beleid ervan.

Een aangepaste ICredentials-provider kan latere uitdagingen beantwoorden, maar kan een gevestigde tunnel niet als een ander account herlabelen. Eén globale gebruikersnaam/wachtwoord rond asynchrone aanroepen laat de timing van de uitdaging en het accounteigendom met elkaar botsen.

Houd een begrensde set clients aan wanneer hergebruik nodig is. Laat oud werk leeglopen voordat het transport wordt weggegooid. Een nieuwe handler per verzoek verspilt verbindingspools; elk historisch account voor altijd bewaren laat ze zonder grens groeien.

Gerelateerde artikelen