Quais credenciais .NET pertencem ao proxy?
Diferencie WebProxy.Credentials, as credenciais do servidor de destino e DefaultProxyCredentials na autenticação de um proxy HTTP.
Para um WebProxy personalizado, coloque a conta do proxy nesse objeto. Outras propriedades de credenciais .NET atendem a destinatários diferentes:
| Propriedade | Destinatário |
|---|---|
WebProxy.Credentials | O proxy representado por esse objeto. |
HttpClientHandler.Credentials | O servidor de destino. |
DefaultProxyCredentials | O proxy padrão do sistema quando Proxy é null e UseProxy é true. |
Este exemplo .NET 10 fornece um proxy explícito e sua própria conta:
using System;
using System.Net;
using System.Net.Http;
string password = Environment.GetEnvironmentVariable("PROXY_PASSWORD")
?? throw new InvalidOperationException("Set PROXY_PASSWORD");
var proxy = new WebProxy("http://203.0.113.10:8080")
{
Credentials = new NetworkCredential("proxy-user", password)
};
using var handler = new HttpClientHandler
{
Proxy = proxy,
UseProxy = true
};
using var client = new HttpClient(handler)
{
Timeout = TimeSpan.FromSeconds(15)
};
using var response = await client.GetAsync("https://example.com/");
Console.WriteLine((int)response.StatusCode);
Substitua o endpoint de documentação e use uma conta fornecida pelo operador. Uma entrada de lista sem autenticação não precisa de login inventado. Como Proxy do handler é atribuído explicitamente, DefaultProxyCredentials não substitui WebProxy.Credentials.
UseDefaultCredentials também tem escopo específico do objeto: a autenticação de servidor do handler e a autenticação de proxy de WebProxy são diferentes. Enviar a conta do usuário do processo não é uma resposta genérica a 407.
Se o desafio de autenticação persistir, confira o esquema real, o endpoint escolhido e a instância de cliente/handler. A autenticação proxy pode ocorrer antes do TLS de destino; portanto, um cabeçalho Authorization do site não pode respondê-la. A autenticação compatível ainda depende de handler, plataforma, serviço e política de implantação; a configuração não exige mudança global do proxy Windows.