Welche .NET-Zugangsdaten gehören zum Proxy?
Unterscheide WebProxy.Credentials, Zugangsdaten des Zielservers und DefaultProxyCredentials bei der Anmeldung an einem HTTP-Proxy.
Trage bei einem eigenen WebProxy das Proxykonto an diesem Objekt ein. Mehrere andere .NET-Eigenschaften für Zugangsdaten richten sich an andere Empfänger:
| Eigenschaft | Empfänger |
|---|---|
WebProxy.Credentials | Der durch dieses Objekt dargestellte Proxy. |
HttpClientHandler.Credentials | Der Zielserver. |
DefaultProxyCredentials | Der Systemstandardproxy, wenn Proxy null und UseProxy true ist. |
Dieses .NET-10-Beispiel gibt einen expliziten Proxy und dessen eigenes Konto an:
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);
Ersetze den Dokumentationsendpunkt und verwende ein vom Betreiber bereitgestelltes Konto. Ein Listeneintrag ohne Authentifizierung braucht keine erfundenen Anmeldedaten. Da Proxy des Handlers explizit gesetzt ist, ersetzt DefaultProxyCredentials nicht WebProxy.Credentials.
UseDefaultCredentials hat ebenfalls einen objektspezifischen Geltungsbereich: Serverauthentifizierung eines Handlers und Proxyauthentifizierung eines WebProxy sind verschieden. Das Konto des Prozessbenutzers zu senden ist keine pauschale Antwort auf 407.
Besteht die Anmeldeaufforderung weiter, prüfe das tatsächliche Verfahren, den gewählten Endpunkt und die Client-/Handlerinstanz. Proxyauthentifizierung kann vor dem Ziel-TLS stattfinden; ein Authorization-Header der Website kann sie daher nicht beantworten. Unterstützte Anmeldung hängt weiterhin von Handler, Plattform, Dienst und Bereitstellungsrichtlinie ab; die Konfiguration benötigt keine globale Änderung des Windows-Proxys.