Koji .NET pristupni podaci pripadaju proxyju?
Razlikujte WebProxy.Credentials, podatke odredišnog servera i DefaultProxyCredentials pri autentifikaciji HTTP proxyja.
Za prilagođeni WebProxy stavite proxy nalog na taj objekat. Nekoliko drugih .NET svojstava pristupnih podataka služi drugim primaocima:
| Svojstvo | Primalac |
|---|---|
WebProxy.Credentials | Proxy predstavljen tim objektom. |
HttpClientHandler.Credentials | Odredišni server. |
DefaultProxyCredentials | Sistemski podrazumevani proxy kada je Proxy null, a UseProxy true. |
Ovaj .NET 10 primer daje izričito postavljen proxy i njegov sopstveni nalog:
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);
Zamenite dokumentacijsku krajnju tačku i koristite nalog koji je dao operater. Unos bez autentifikacije ne treba izmišljenu prijavu. Pošto je handlerovo Proxy izričito postavljeno, DefaultProxyCredentials nije zamena za WebProxy.Credentials.
UseDefaultCredentials takođe ima opseg vezan za objekat: serverska autentifikacija handlera i proxy autentifikacija WebProxyja su različite. Slanje naloga korisnika procesa nije opšti odgovor na 407.
Ako zahtev za autentifikaciju ostaje, proverite stvarnu šemu, odabranu krajnju tačku i instancu klijenta/handlera. Proxy autentifikacija može prethoditi odredišnom TLS-u, pa joj Authorization zaglavlje sajta ne može odgovoriti. Podržana autentifikacija i dalje zavisi od handlera, platforme, usluge i politike primene; postavka ne traži globalnu promenu Windows proxyja.