Hvilke .NET-påloggingsdata skal proxyen ha?
Se forskjellen på WebProxy.Credentials, målserverens påloggingsdata og DefaultProxyCredentials når en HTTP-proxy autentiseres.
Bruker du en egen WebProxy, plasser proxykontoen på det objektet. Andre .NET-egenskaper for pålogging har forskjellige mottakere:
| Egenskap | Mottaker |
|---|---|
WebProxy.Credentials | Proxyen representert av objektet. |
HttpClientHandler.Credentials | Serveren på målet. |
DefaultProxyCredentials | Systemets standardproxy hvis Proxy er null og UseProxy er true. |
Dette eksemplet for .NET 10 bruker en uttrykkelig valgt proxy med dens egen konto:
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);
Bytt ut dokumentasjonseksemplet og bruk kontoen proxyoperatøren har gitt deg. Det skal ikke oppfinnes innlogging for en oppføring som ikke krever autentisering. Fordi Proxy på handleren er satt direkte, kan DefaultProxyCredentials ikke brukes i stedet for WebProxy.Credentials.
Også UseDefaultCredentials avgrenses av objektet: serverautentisering i handleren er noe annet enn proxyautentisering i WebProxy. Å sende prosessbrukerens konto er ikke en universalløsning på 407.
Ved fortsatt autentiseringskrav, sjekk den faktiske ordningen, valgt endepunkt og klient-/handlerobjektet. Proxyen kan autentiseres før TLS mot målet, og nettstedets Authorization-header kan ikke svare på det kravet. Hvilken autentisering som støttes, kommer fremdeles an på handler, plattform, tjeneste og utrullingspolicy. Oppsettet trenger ingen systemomfattende endring av Windows-proxyen.