Множественная проверка подлинности приложения с использованием одного входа - PullRequest
0 голосов
/ 29 мая 2019

У меня есть приложение, работающее на asp.net с Identity для управления пользователями.

Сейчас я нахожусь в производстве другого приложения, использующего технологии asp.net core и Angular 7.

Я пытался использовать одну и ту же БД для обоих приложений для входа в систему, но это не сработало, поскольку Identity в ядре .net и .net имеет разные алгоритмы хеширования.

можно ли использовать мою проверку подлинности приложения .net для приложений .net core и angular 7, просто указав ссылку на кнопку из первого приложения?

Когда я продолжил, как описано выше, я обнаружил некоторые проблемы, перечисленные ниже: -

  • Как избежать прямого доступа пользователя ко второму приложению .net core?

Как мне продолжить этот сценарий?

Любая помощь будет оценена.

1 Ответ

3 голосов
/ 29 мая 2019

Поскольку в ASP.NET Core Identity используется более безопасный механизм хеширования паролей, по умолчанию вы не можете использовать более старую версию ASP.NET Identity для доступа к той же базе данных, поскольку она не понимает новый механизм.Однако все, что работает «из коробки», - это использовать ASP.NET Core Identity со старыми хешами, поскольку хеш фактически имеет версионную версию, что упрощает миграцию из более старой базы данных.

Если вам нужны ASP.NET Core Identity и ASP.NET Identity, чтобы сосуществовать, используя одну и ту же базу данных, вам придется использовать более старый алгоритм хеширования, поскольку это единственный поддерживаемый ASP.NET Identity.К счастью, вы можете настроить ASP.NET Core Identity для использования только самого этого алгоритма.

Настройка описана в документации и выглядит следующим образом:

services.Configure<PasswordHasherOptions>(option =>
{
    option.CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV2;
});

Это позволит эффективно понизить ASP.NET Core Identity для использования более старого алгоритма и обеспечить полную совместимость с ASP.NET Identity.

...