Арнайы WebProxy үшін прокси тіркелгісін сол объектіге қойыңыз. Басқа .NET кіру деректері қасиеттері әртүрлі алушыларға арналған:

ҚасиетАлушы
WebProxy.CredentialsСол объект көрсететін прокси.
HttpClientHandler.CredentialsМақсат сервері.
DefaultProxyCredentialsProxy null және UseProxy true болғандағы жүйенің әдепкі проксиі.

Бұл .NET 10 мысалы айқын берілген проксиді және оның жеке тіркелгісін көрсетеді:

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

Құжаттағы соңғы нүктені ауыстырып, оператор берген тіркелгіні пайдаланыңыз. Аутентификациясыз тізім жазбасына ойдан шығарылған кіру қажет емес. Өңдегіштің Proxy қасиеті айқын қойылғандықтан, DefaultProxyCredentials, WebProxy.Credentials орнына жүрмейді.

UseDefaultCredentials аясы да объектіге тәуелді: өңдегіштің сервер аутентификациясы мен WebProxy прокси аутентификациясы әртүрлі. Процесс пайдаланушысының тіркелгісін жіберу 407-ге әмбебап жауап емес.

Аутентификация талабы қалса, нақты сызбаны, таңдалған соңғы нүктені және клиент/өңдегіш данасын тексеріңіз. Прокси аутентификациясы мақсат TLS-інен бұрын өтуі мүмкін, сондықтан сайттың Authorization тақырыбы оған жауап бере алмайды. Қолдау әлі де өңдегішке, платформаға, қызметке және енгізу саясатына тәуелді; Windows проксиін жаһандық өзгерту қажет емес.

Қатысты мақалалар