Невозможно пройти аутентификацию в ASP.NET Web Api с помощью HttpClient

У меня есть служба веб-API ASP.NET, которая работает на веб-сервере с включенной аутентификацией Windows.

У меня есть клиентский сайт, построенный на MVC4, который работает на другом сайте на том же веб-сервере, который использует HttpClient для извлечения данных из службы. Этот клиентский сайт работает с включенной идентификацией личности, а также использует проверку подлинности Windows.

Веб-сервер - Windows Server 2008 R2 с IIS 7.5.

Проблема, с которой я столкнулся, заключается в том, чтобы заставить HttpClient передать текущего пользователя Windows как часть процесса аутентификации. Я настроил HttpClient следующим образом:

<code>var clientHandler = new HttpClientHandler();
clientHandler.UseDefaultCredentials = true;
clientHandler.PreAuthenticate = true;
clientHandler.ClientCertificateOptions = ClientCertificateOption.Automatic;
var httpClient = new HttpClient(clientHandler);
</code>

Насколько я понимаю, запуск сайта с включенной имитацией идентификации и последующее построение клиента таким образом должно привести к тому, что клиент будет проходить аутентификацию в службе, используя олицетворенную идентификацию текущего пользователя, вошедшего в систему.

Это не происходит Фактически, клиент, похоже, вообще не аутентифицируется.

Служба настроена на использование проверки подлинности Windows, и это, кажется, работает отлично. Я могу пойти вHttp: // сервер / API / грузоотправителей в моем веб-браузере и запрос на проверку подлинности Windows, после ввода я получаю запрошенные данные.

В журналах IIS я вижу, что запросы API принимаются без аутентификации и получают ответ на вызов 401.

Документация по этому вопросу, кажется, скудна.

Мне нужно некоторое понимание того, что может быть не так или другой способ использования проверки подлинности Windows с этим приложением.

Благодарю вас, Craig

Ответы на вопрос(4)

Ваш ответ на вопрос