Manteña un controlador .NET separado para cada conta de proxy
Cree controladores separados para contas simultáneas en lugar de substituír WebProxy.Credentials nun transporte que xa atende solicitudes.
Un transporte pode conservar o obxecto provedor de credenciais de proxy elixido ao crear o seu xestor de grupo. Substituír WebProxy.Credentials despois non é unha operación fiable de cambio de conta.
Cree a ruta e a conta xuntas antes de usar o cliente:
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);O punto final e as credenciais proveñen da configuración da aplicación. Cree outro controlador para unha segunda identidade; outro HttpClient que comparta o primeiro controlador tamén comparte a súa política.
Un provedor ICredentials personalizado pode responder a desafíos posteriores, pero non pode reetiquetar un túnel establecido como outra conta. Asignar un único usuario/contrasinal global arredor de chamadas asíncronas deixa o momento do desafío e a propiedade da conta en conflito.
Manteña un conxunto limitado de clientes cando se necesite reutilización. Baleire o traballo antigo antes de descartar o seu transporte. Un controlador novo por solicitude desbota os grupos de conexións; conservar todas as contas históricas para sempre fai que medren sen límite.