Кайсы .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 проксисин өзгөртүү керек эмес.