Који .NET приступни подаци припадају проксију?
Разликујте WebProxy.Credentials, податке одредишног сервера и DefaultProxyCredentials при аутентификацији HTTP проксија.
За прилагођени 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 проксија.