Ktoré prihlasovacie údaje .NET patria proxy?
Pri autentifikácii HTTP proxy rozlišujte WebProxy.Credentials, údaje cieľového servera a DefaultProxyCredentials.
Pri vlastnom WebProxy nastavte účet proxy na tomto objekte. Niekoľko ďalších vlastností prihlasovacích údajov .NET slúži iným príjemcom:
| Vlastnosť | Príjemca |
|---|---|
WebProxy.Credentials | Proxy reprezentovaná týmto objektom. |
HttpClientHandler.Credentials | Cieľový server. |
DefaultProxyCredentials | Predvolená systémová proxy, keď je Proxy null a UseProxy true. |
Tento príklad pre .NET 10 poskytuje výslovne nastavenú proxy a jej vlastný účet:
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);
Nahraďte dokumentačný bod a použite účet dodaný prevádzkovateľom. Položka bez autentifikácie nepotrebuje vymyslené prihlásenie. Keďže Proxy obsluhy je výslovne nastavené, DefaultProxyCredentials nie je náhradou za WebProxy.Credentials.
UseDefaultCredentials má tiež rozsah podľa objektu: autentifikácia obsluhy voči serveru a autentifikácia WebProxy voči proxy sú rôzne. Posielanie účtu používateľa procesu nie je všeobecná odpoveď na 407.
Ak výzva pretrváva, skontrolujte skutočnú schému, zvolený bod a inštanciu klienta/obsluhy. Autentifikácia proxy môže predchádzať TLS s cieľom, takže hlavička Authorization webu na ňu nemôže odpovedať. Podporovaná autentifikácia stále závisí od obsluhy, platformy, služby a pravidiel nasadenia; nastavenie nevyžaduje globálnu zmenu proxy Windows.