Қай .NET кіру деректері проксиге тиесілі?
HTTP прокси аутентификациясында WebProxy.Credentials, мақсат серверінің деректері және DefaultProxyCredentials айырмасын ажыратыңыз.
Арнайы WebProxy үшін прокси тіркелгісін сол объектіге қойыңыз. Басқа .NET кіру деректері қасиеттері әртүрлі алушыларға арналған:
| Қасиет | Алушы |
|---|---|
WebProxy.Credentials | Сол объект көрсететін прокси. |
HttpClientHandler.Credentials | Мақсат сервері. |
DefaultProxyCredentials | Proxy 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 проксиін жаһандық өзгерту қажет емес.