Hou ’n aparte .NET-hanter vir elke proxy-rekening
Bou aparte hanteerders vir gelyktydige rekeninge eerder as om WebProxy.Credentials op ’n transport te vervang wat reeds versoeke bedien.
’n Transport kan die proxy-aanmeldingsverskaffer-voorwerp hou wat gekies is toe sy poelbestuurder geskep is. Om WebProxy.Credentials daarna te vervang is nie ’n betroubare manier om van rekening te wissel nie.
Skep die roete en die rekening saam voordat die kliënt gebruik word:
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);Die eindpunt en aanmeldings kom uit die toepassing se konfigurasie. Bou nog ’n hanteerder vir ’n tweede identiteit; nog HttpClient wat dieselfde hanteerder deel, deel ook sy beleid.
’n Pasgemaakte ICredentials-verskaffer kan latere uitdagings beantwoord, maar dit kan nie ’n gevestigde tonnel as ’n ander rekening hermerk nie. Een globale gebruikersnaam/wagwoord rondom asinchrone oproepe laat uitdagings-tydsberekening en rekening-eienaarskap bots.
Hou ’n begrensde stel kliënte wanneer hergebruik nodig is. Tap ou werk af voordat die transport weggegooi word. Een nuwe hanteerder per versoek mors konneksiepoele; om elke historiese rekening vir ewig te hou, laat hulle sonder grens groei.