Kva .NET-innloggingsopplysningar høyrer til proxyen?
Skil WebProxy.Credentials, innlogginga til måltenaren og DefaultProxyCredentials ved autentisering mot ein HTTP-proxy.
For ein eigen WebProxy skal proxykontoen setjast på det objektet. Fleire andre .NET-eigenskapar for innloggingsopplysningar har andre mottakarar:
| Eigenskap | Mottakar |
|---|---|
WebProxy.Credentials | Proxyen som objektet representerer. |
HttpClientHandler.Credentials | Måltenaren. |
DefaultProxyCredentials | Standardproxyen til systemet når Proxy er null og UseProxy er true. |
Dette .NET 10-dømet gjev ein eksplisitt proxy og hans eigen konto:
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);
Erstatt dokumentasjonsendepunktet og bruk ein konto frå operatøren. Ei listeoppføring utan autentisering treng inga oppdikta innlogging. Sidan Proxy til handteraren er eksplisitt sett, erstattar DefaultProxyCredentials ikkje WebProxy.Credentials.
UseDefaultCredentials har òg eit objektspesifikt omfang: tenarautentiseringa til ein handterar og proxyautentiseringa til ein WebProxy er ulike. Å sende kontoen til prosessbrukaren er ikkje eit generelt svar på 407.
Viss autentiseringsutfordringa held fram, kontroller den faktiske mekanismen, det valde endepunktet og klient-/handterarinstansen. Proxyautentisering kan skje før TLS til målet, så Authorization-hovudet til nettstaden kan ikkje svare på henne. Støtta er framleis avhengig av handterar, plattform, teneste og distribusjonspolitikk; inga global Windows-proxyendring trengst.