Автоматический вход в тот же домен в WebApi с использованием withCredentials - PullRequest
0 голосов
/ 21 января 2019

У меня установлено приложение Angular 7 для получения данных из WepApi.Оба работают в одном домене, API основан на Asp.Net.ОПЦИИ фиксируются в Application_BeginRequest и принимаются, тогда как учетные данные проверяются через IIS впоследствии.Пока все работает.

  • Приложение Angular обслуживается IIS с использованием аутентификации Windows.Автоматический вход работает, как и ожидалось, в IE / Edge и Chrome.Firefox запрашивает учетные данные при первом входе в систему.

  • Сервер IIS WebApi также обслуживается IIS в том же домене с использованием проверки подлинности Windows.Автоматический вход в систему (при переходе к API напрямую), как и ожидалось, в IE / Edge и Chrome.Firefox запрашивает учетные данные при первом входе в систему.

Что я не могу обернуть, так это:

  • Используя приложение Angular, я отправляюHTTP-запрос с «withCredentials: true» для WebApi.Для первого запроса ВСЕ браузеры запрашивают учетные данные Windows.

Есть ли способ заставить автоматический вход в систему работать также для вызова CORS через WebApi?Он работает нормально после ввода учетных данных один раз, почему он не использует стандартные из окон?Есть ли способ сказать, что я звоню в тот же домен?

1 Ответ

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

Разобрался сам. Решение состояло в том, чтобы использовать URL-адрес страницы вместо IP-адреса страницы в HTTP-запросе от Angular к бэкэнду (например, "http://myinternalsite/api/" вместо" http://192.168.39.1/api/" в качестве базового URL-адреса для HTTP-запросов) , Затем браузер сможет правильно определить целевой веб-сайт, находящийся в том же домене, и автоматически использовать соответствующие учетные данные вместо запроса пользователя.

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