ASP. NET MVC Базовая аутентификация через родительский сайт - PullRequest
0 голосов
/ 07 апреля 2020

На IIS у меня есть веб-сайт для входа, который используется для получения учетных данных от пользователя и аутентификации его. Аутентификация выполняется через:

FormsAuthentication.SetAuthCookie

Приложение для входа в систему написано в asp. net веб-приложении.

Теперь есть еще одно. NET CORE mvc веб-приложение, которое будет сидеть в качестве дочернего веб-приложения на этом веб-сайте входа в систему и должен проходить проверку подлинности через приложение входа в систему.

По умолчанию дочернее веб-приложение не входит в страницу входа.

Как настроить это веб-приложение для входа в систему с родительского сайта?

HttpContext.User.Identity.IsAuthenticated в mvc базовое дочернее приложение возвращает false и не может прочитать зарегистрированного пользователя.

1 Ответ

0 голосов
/ 07 апреля 2020

Вы не можете. Традиционная веб-аутентификация и, в частности, FormsAuth использует куки для сохранения состояния входа в систему. Файлы cookie привязаны к домену, а файлы cookie для аутентификации также зашифрованы . Вы можете получить доступ к Cook * ie в первую очередь, если оба приложения находятся в одном домене, и даже тогда его можно прочитать, только если они могут и зашифровать, и дешифровать одинаково. Метод шифрования изменился между ASP. NET и ASP. NET Ядро, так что это за пределами окна. ASP. NET используются машинные ключи, тогда как ASP. NET Ядро использует API защиты данных.

На сайте ASP. NET MVC 5 есть одно незначительное исключение. Вы можете использовать API защиты данных благодаря поддержке OWIN. Таким образом, эти два приложения могут быть зашифрованы / дешифрованы одинаково. Однако сам факт использования FormsAuth означает, что вы не можете этого достичь. FormsAuth может только использовать машинные ключи, поэтому вам придется перенастроить устаревшее приложение на использование ASP. NET Удостоверение как минимум, сначала.

...