Welke .NET-inloggegevens horen bij de proxy?
Onderscheid WebProxy.Credentials, inloggegevens voor de doelserver en DefaultProxyCredentials bij authenticatie van een HTTP-proxy.
Zet voor een eigen WebProxy het proxyaccount op dat object. Andere .NET-eigenschappen voor inloggegevens hebben andere ontvangers:
| Eigenschap | Ontvanger |
|---|---|
WebProxy.Credentials | De proxy die dat object vertegenwoordigt. |
HttpClientHandler.Credentials | De doelserver. |
DefaultProxyCredentials | De standaardproxy van het systeem wanneer Proxy null is en UseProxy true is. |
Dit .NET 10-voorbeeld geeft een expliciete proxy en het bijbehorende account op:
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);
Vervang het documentatie-eindpunt en gebruik een account van de beheerder. Een lijstvermelding zonder authenticatie heeft geen verzonnen login nodig. Omdat Proxy van de handler expliciet is toegewezen, is DefaultProxyCredentials geen vervanging voor WebProxy.Credentials.
UseDefaultCredentials heeft ook een objectspecifiek bereik: serverauthenticatie van een handler en proxyauthenticatie van een WebProxy verschillen. Het account van de procesgebruiker versturen is geen algemeen antwoord op 407.
Blijft de authenticatie-uitdaging bestaan, controleer dan het echte schema, gekozen eindpunt en de client/handlerinstantie. Proxyauthenticatie kan vóór doel-TLS plaatsvinden, dus een Authorization-header voor de website kan deze niet beantwoorden. Ondersteunde authenticatie hangt nog altijd af van handler, platform, dienst en uitrolbeleid; een globale wijziging van de Windows-proxy is niet nodig.