Ямар .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-ийн проксийг нийтэд нь өөрчлөх шаардлагагүй.