Эта последовательность выглядит явной, но в .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 может управлять другой областью проверки подлинности.

Похожие статьи