WebProxy.UseDefaultCredentials pode redefinir uma credencial explícita
Evite redefinir uma conta de proxy .NET explícita atribuindo UseDefaultCredentials depois.
Esta sequência parece explícita, mas no .NET 10 termina sem qualquer credencial de proxy:
proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword);
proxy.UseDefaultCredentials = false;
Na implementação de WebProxy do .NET 10, definir UseDefaultCredentials como false atribui null a Credentials. Defini-lo como true seleciona CredentialCache.DefaultCredentials. As duas propriedades controlam a mesma escolha de conta.
Para uma conta específica de um serviço, atribua a credencial pretendida sem uma redefinição posterior:
var proxy = new WebProxy("http://proxy.example.net:8080")
{
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
Se o código de configuração existente tiver de desativar explicitamente as credenciais padrão, faça-o antes de atribuir NetworkCredential. O respetivo getter pode ser false enquanto uma credencial explícita está corretamente presente; false não significa necessariamente que nenhuma conta esteja configurada.
Associe este objeto ao processador que executa o pedido. Para autenticação integrada do Windows, escolha deliberadamente as credenciais padrão, utilizando a identidade aplicável do processo.
Verifique a ordem do inicializador de objetos e os métodos auxiliares para atribuições posteriores que substituam a conta pretendida. Ligue este diagnóstico à implementação de WebProxy em uso; uma propriedade com o mesmo nome num processador HTTP pode reger um âmbito de autenticação diferente.