Koji .NET pristupni podaci pripadaju proxyju?
Razlikujte WebProxy.Credentials, podatke odredišnog poslužitelja i DefaultProxyCredentials pri autentifikaciji HTTP proxyja.
Za prilagođeni WebProxy postavite proxy račun na taj objekt. Nekoliko drugih .NET svojstava pristupnih podataka služi drugim primateljima:
| Svojstvo | Primatelj |
|---|---|
WebProxy.Credentials | Proxy predstavljen tim objektom. |
HttpClientHandler.Credentials | Odredišni poslužitelj. |
DefaultProxyCredentials | Sistemski zadani proxy kada je Proxy null, a UseProxy true. |
Ovaj .NET 10 primjer daje izričito postavljen proxy i njegov vlastiti račun:
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);
Zamijenite dokumentacijsku krajnju točku i koristite račun koji je dao operater. Unos bez autentifikacije ne treba izmišljenu prijavu. Budući da je handlerovo Proxy izričito postavljeno, DefaultProxyCredentials nije zamjena za WebProxy.Credentials.
UseDefaultCredentials također ima opseg vezan uz objekt: autentifikacija handlera prema poslužitelju i autentifikacija WebProxyja prema proxyju različite su. Slanje računa korisnika procesa nije opći odgovor na 407.
Ako zahtjev za autentifikaciju ostaje, provjerite stvarnu shemu, odabranu krajnju točku i instancu klijenta/handlera. Autentifikacija proxyja može prethoditi odredišnom TLS-u, pa joj zaglavlje Authorization web-stranice ne može odgovoriti. Podržana autentifikacija i dalje ovisi o handleru, platformi, usluzi i politici primjene; postavka ne traži globalnu promjenu Windows proxyja.