Xüsusi WebProxy üçün proksi hesabını həmin obyektə yazın. Digər .NET giriş məlumatı xassələrinin fərqli alıcıları var:

XassəAlıcı
WebProxy.CredentialsHəmin obyektin təmsil etdiyi proksi.
HttpClientHandler.CredentialsTəyinat serveri.
DefaultProxyCredentialsProxy null və UseProxy true olduqda sistemin standart proksisi.

Bu .NET 10 nümunəsi açıq təyin edilmiş proksi və onun öz hesabını verir:

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);

Sənəddəki son nöqtəni dəyişin və operatorun verdiyi hesabdan istifadə edin. Autentifikasiya tələb etməyən siyahı qeydinə uydurma giriş lazım deyil. İşləyicinin Proxy xassəsi açıq təyin edildiyindən DefaultProxyCredentials, WebProxy.Credentials əvəzi deyil.

UseDefaultCredentials da obyektə məxsus əhatəyə malikdir: işləyicinin server autentifikasiyası ilə WebProxy-nin proksi autentifikasiyası fərqlidir. Proses istifadəçisinin hesabını göndərmək 407-yə ümumi cavab deyil.

Autentifikasiya tələbi qalırsa, həqiqi sxemi, seçilmiş son nöqtəni və müştəri/işləyici nüsxəsini yoxlayın. Proksi autentifikasiyası təyinat TLS-indən əvvəl ola bilər, ona görə saytın Authorization başlığı buna cavab verə bilməz. Dəstəklənən autentifikasiya yenə işləyici, platforma, xidmət və tətbiq siyasətindən asılıdır; bu quruluş ümumi Windows proksi dəyişikliyi tələb etmir.

Əlaqəli məqalələr