У меня есть служба Web Api 2 и веб-сайт javascript. Оба размещены на внутреннем сервере IIS для внутренних клиентов. Мне нужно иметь возможность получить пользователя Windows с сайта на службу через проверку подлинности Windows.
Когда я перехожу к операции метаданных службы в Chrome (например: http://theServer.domain.net/myController/metadata) я получаю правильный результат вместе с информацией о пользователе.
Но когда я пытаюсь загрузить эти данные в свое приложение, я получаю следующую ошибку:
401.2 У вас нет прав для просмотра этой страницы из-за недопустимых заголовков аутентификации.
Однако это не работает только в Chrome. IE 11 загружает его просто отлично.
Это то, что я пробовал/установил:
Наиболее распространенное решение для этого — убедиться, что у вас включена проверка подлинности Windows для IIS. Я дважды проверил, что это включено. И что на моем веб-сайте IIS есть оба модуля проверки подлинности Windows.
Я запускаю оба пула приложений (один для службы и один для сайта) в качестве безопасности идентификации пула приложений. И я убедился, что пулы приложений имеют доступ к файлам на диске. (Чтобы быть уверенным, я даже попробовал это с их настройкой для запуска от имени меня.)
Я также настроил свой веб-сайт с помощью
<authentication mode="Windows" />
в файле web.config.Мой веб-сайт настроен как для Windows, так и для анонимной аутентификации. И моя служба настроена только для проверки подлинности Windows.
И на сервере, и на веб-сайте проверка подлинности Windows настроена так, что единственным провайдером является NTLM.
В обоих пулах приложений я включил 32-битные приложения.
Поскольку ничего из этого не работало, я попытался запустить Fiddler, чтобы посмотреть, смогу ли я просмотреть заголовки и выполнить отладку на более низком уровне. Но как только Fiddler запустился, проблема исчезла! Ошибка исчезла, и сервер правильно прошел аутентификацию! Однако он работает только во время работы скрипача. (Я попытался прочитать Помощь! Запуск Fiddler исправляет мое приложение, но я не видел ничего, что могло бы помочь.)
Итак, мой вопрос: что мне нужно сделать, чтобы это работало с проверкой подлинности Windows? (Мне нужна информация о пользователе.)