Отсутствует токен согласования в HTTP-запросах Angular - PullRequest
0 голосов
/ 07 января 2019

У меня есть приложение 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, который я ожидал, в результате чего пользователю все еще дважды предлагается ввести учетные данные. Как запретить пользователю дважды запрашивать учетные данные?

1 Ответ

0 голосов
/ 10 января 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...