.NET Core Web API, использующий HttpClient, не передает учетные данные в WebProxy - PullRequest
0 голосов
/ 30 ноября 2018

Я пишу .NET Core Web API, который использует HttpClient для связи с внешним API из моей рабочей сети.Первоначально у меня была периодическая ошибка 407 Аутентификация через прокси, и я наткнулся на эту статью , поскольку я неправильно передавал учетные данные на веб-сервер вместо прокси.

Я внес изменения, описанные в статье.и теперь я получаю исключение от нашего прокси-сервера:

" Ваши учетные данные не могут быть аутентифицированы: учетные данные отсутствуют. Вам не будет разрешен доступ, пока ваши учетные данные не будут проверены."

Как ни странно, я протестировал приведенный ниже код (на той же машине), используя простое консольное приложение .NET Framework 4.6.1, и он работает отлично, так как я получаю ожидаемыйПолезная нагрузка от внешнего API.У меня точно такой же код для настройки моего HttpClient в Web API, и я не могу понять, почему кажется, что учетные данные не передаются соответствующим образом в WebProxy.

Примечание: я пробовал жестко программировать определенныйимя пользователя и пароль для WebProxy.Credentials (как показано в связанной статье выше), если предположить, что полномочия, которые запускают Web API в отладчике на моем локальном компьютере, могут не совпадать с теми, которые выполняются в консольном приложении.Я все еще получаю сообщение об отсутствии учетных данных.

var httpClientHandler = new HttpClientHandler
{
    UseProxy = true,
    Proxy = new WebProxy()
    {
        Address = new Uri("http://companyproxy:port"),
        BypassProxyOnLocal = true,
        UseDefaultCredentials = false,
        Credentials = CredentialCache.DefaultCredentials
        //Credentials = new NetworkCredential("userName", "password")
    }
};

HttpClient httpClient = new HttpClient(httpClientHandler)
{
    BaseAddress = new Uri("http://externalApiUrl/endpoint")
};
...