У меня есть приложение Angular 5, содержащееся в проекте .NET Core, которое было развернуто на IIS 10. Этот пользовательский интерфейс использует API .NET Core, который был развернут на том же сервере IIS, но на другом сайте и пуле приложений.
При входе на сайт пользователю предлагается ввести учетные данные домена. Это желательно. Когда сайт выполняет первый HTTP-вызов API, пользователю снова предлагается ввести учетные данные. Это проблема и не должно произойти. Мне нужно, чтобы первый токен аутентификации был перенесен в HTTP-вызовы API.
Я настроил IIS для обработки встроенной аутентификации, включив ASP.NET Impersonation
как для API, так и для пользовательского интерфейса, однако я вижу, что токен Negotiate
не передается в API в HTTP-запросах в инструментах разработчика Chrome.
В Angular я создал HTTP-перехватчик, который добавляет учетные данные ко всем запросам. Это делается с помощью:
request = request.clone({
withCredentials: true
});
Однако это, похоже, не исправляет отсутствующий токен Negotiate
, который я ожидал, в результате чего пользователю все еще дважды предлагается ввести учетные данные. Как запретить пользователю дважды запрашивать учетные данные?