Тази последователност изглежда явна, но в .NET 10 завършва без идентификационни данни за прокси:

proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword);
proxy.UseDefaultCredentials = false;

В реализацията на WebProxy в .NET 10 задаването на UseDefaultCredentials на false присвоява null на Credentials. Задаването на true избира CredentialCache.DefaultCredentials. Двете свойства управляват един и същ избор на акаунт.

За акаунт, специфичен за услуга, задайте желаните идентификационни данни без последващо нулиране:

var proxy = new WebProxy("http://proxy.example.net:8080")
{
    Credentials = new NetworkCredential(proxyUser, proxyPassword)
};

Ако съществуващ код за настройка трябва изрично да изключи идентификационните данни по подразбиране, направете го преди да зададете NetworkCredential. Неговият getter може да е false, докато явни идентификационни данни са налице правилно; false не означава непременно, че не е конфигуриран акаунт.

Прикачете този обект към манипулатора, който изпълнява заявката. За интегрирано удостоверяване на Windows вместо това умишлено изберете идентификационните данни по подразбиране, като използвате приложимата идентичност на процеса.

Проверете реда на инициализатора на обекта и помощните методи за последващи присвоявания, които заменят желания акаунт. Обвържете тази диагностика с използваната реализация на WebProxy; едноименно свойство на HTTP манипулатор може да управлява различен обхват на удостоверяване.

Подобни статии