Невозможно пройти аутентификацию в 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