Quali credenziali .NET appartengono al proxy?
Distingui WebProxy.Credentials, credenziali del server di destinazione e DefaultProxyCredentials nell’autenticazione di un proxy HTTP.
Per un WebProxy personalizzato, imposta l’account del proxy su quell’oggetto. Altre proprietà di credenziali .NET servono destinatari diversi:
| Proprietà | Destinatario |
|---|---|
WebProxy.Credentials | Il proxy rappresentato da quell’oggetto. |
HttpClientHandler.Credentials | Il server di destinazione. |
DefaultProxyCredentials | Il proxy predefinito di sistema quando Proxy è null e UseProxy è true. |
Questo esempio .NET 10 fornisce un proxy esplicito e il suo account:
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);
Sostituisci l’endpoint di documentazione e usa un account fornito dall’operatore. Una voce senza autenticazione non richiede un accesso inventato. Poiché Proxy dell’handler è assegnato esplicitamente, DefaultProxyCredentials non sostituisce WebProxy.Credentials.
Anche UseDefaultCredentials ha un ambito specifico dell’oggetto: l’autenticazione al server dell’handler e l’autenticazione al proxy di WebProxy sono diverse. Inviare l’account dell’utente del processo non è una risposta generica a 407.
Se la richiesta di autenticazione persiste, controlla lo schema effettivo, l’endpoint selezionato e l’istanza client/handler. L’autenticazione proxy può precedere il TLS verso la destinazione, quindi un header Authorization del sito non può rispondervi. L’autenticazione supportata dipende ancora da handler, piattaforma, servizio e criteri di distribuzione; non serve cambiare globalmente il proxy Windows.