Kuri .NET piekļuves dati pieder starpniekserverim?
Autentificējot HTTP starpniekserveri, atšķiriet WebProxy.Credentials, mērķa servera datus un DefaultProxyCredentials.
Savā WebProxy norādiet starpniekservera kontu uz šī objekta. Citi .NET piekļuves datu rekvizīti paredzēti dažādiem saņēmējiem:
| Rekvizīts | Saņēmējs |
|---|---|
WebProxy.Credentials | Starpniekserveris, ko pārstāv šis objekts. |
HttpClientHandler.Credentials | Mērķa serveris. |
DefaultProxyCredentials | Sistēmas noklusētais starpniekserveris, kad Proxy ir null un UseProxy ir true. |
Šis .NET 10 piemērs norāda skaidri iestatītu starpniekserveri un tā kontu:
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);
Aizstājiet dokumentācijas galapunktu un izmantojiet operatora piešķirtu kontu. Saraksta ierakstam bez autentifikācijas nevajag izdomātu pieteikšanos. Tā kā apstrādātāja Proxy ir skaidri piešķirts, DefaultProxyCredentials neaizstāj WebProxy.Credentials.
UseDefaultCredentials tvērums arī atkarīgs no objekta: apstrādātāja servera autentifikācija un WebProxy starpniekservera autentifikācija ir dažādas. Procesa lietotāja konta nosūtīšana nav vispārēja atbilde uz 407.
Ja autentifikācijas izaicinājums paliek, pārbaudiet īsto shēmu, izvēlēto galapunktu un klienta/apstrādātāja instanci. Starpniekservera autentifikācija var notikt pirms mērķa TLS, tāpēc vietnes Authorization galvene uz to nevar atbildēt. Atbalsts joprojām atkarīgs no apstrādātāja, platformas, pakalpojuma un ieviešanas politikas; globāli mainīt Windows starpniekserveri nevajag.