Hvilke .NET-legitimationsoplysninger hører til proxyen?
Skeln WebProxy.Credentials, destinationsserverens login og DefaultProxyCredentials ved godkendelse mod en HTTP-proxy.
For en brugerdefineret WebProxy skal proxykontoen sættes på det objekt. Flere andre .NET-egenskaber for legitimationsoplysninger har andre modtagere:
| Egenskab | Modtager |
|---|---|
WebProxy.Credentials | Proxyen repræsenteret af objektet. |
HttpClientHandler.Credentials | Destinationsserveren. |
DefaultProxyCredentials | Systemets standardproxy, når Proxy er null, og UseProxy er true. |
Dette .NET 10-eksempel angiver en eksplicit proxy og dens egen 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);
Erstat dokumentationsendepunktet, og brug en konto leveret af operatøren. En listepost uden godkendelse kræver ikke opdigtet login. Da handlerens Proxy er eksplicit sat, erstatter DefaultProxyCredentials ikke WebProxy.Credentials.
UseDefaultCredentials har også et objektspecifikt omfang: en handlers servergodkendelse og en WebProxys proxygodkendelse er forskellige. At sende procesbrugerens konto er ikke et generelt svar på 407.
Hvis godkendelsesudfordringen fortsætter, kontrollér den faktiske mekanisme, det valgte endepunkt og klient/handler-instansen. Proxygodkendelse kan komme før TLS til destinationen, så webstedets Authorization-header kan ikke besvare den. Understøttet godkendelse afhænger stadig af handler, platform, tjeneste og udrulningspolitik; opsætningen kræver ingen global Windows-proxyændring.