Které přihlašovací údaje .NET patří proxy?
Při autentizaci HTTP proxy rozlišujte WebProxy.Credentials, údaje cílového serveru a DefaultProxyCredentials.
U vlastního WebProxy nastavte účet proxy na tomto objektu. Několik dalších vlastností přihlašovacích údajů .NET slouží jiným příjemcům:
| Vlastnost | Příjemce |
|---|---|
WebProxy.Credentials | Proxy reprezentovaná tímto objektem. |
HttpClientHandler.Credentials | Cílový server. |
DefaultProxyCredentials | Výchozí systémová proxy, když je Proxy null a UseProxy true. |
Tento příklad pro .NET 10 poskytuje výslovně nastavenou proxy a její vlastní účet:
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);
Nahraďte dokumentační bod a použijte účet dodaný provozovatelem. Položka seznamu bez autentizace nepotřebuje vymyšlené přihlášení. Protože je Proxy obsluhy výslovně nastaveno, DefaultProxyCredentials není náhradou za WebProxy.Credentials.
UseDefaultCredentials má také rozsah podle objektu: autentizace obsluhy vůči serveru a autentizace WebProxy vůči proxy jsou různé. Posílání účtu uživatele procesu není obecná odpověď na 407.
Pokud výzva přetrvává, zkontrolujte skutečné schéma, zvolený bod a instanci klienta/obsluhy. Autentizace proxy může předcházet TLS s cílem, takže hlavička Authorization webu na ni nemůže odpovědět. Podporovaná autentizace stále závisí na obsluze, platformě, službě a pravidlech nasazení; nastavení nevyžaduje globální změnu proxy Windows.