ASP.NET Core Identity: несколько провайдеров для одной учетной записи - PullRequest
0 голосов
/ 30 марта 2019

Я пытался обернуть голову вокруг новой платформы ASP.NET Core Identity.

Я хочу, чтобы клиенты могли входить в систему с использованием внешних поставщиков, поэтому мне не о чем беспокоитьсяо хранении пароля.Это работает, если я использую провайдера по умолчанию: .AddDefaultIdentity<EntityUser>() вместе с .AddAuthenticationAddFacebook, AddGoogle, AddMicrosoftAccount).

У некоторых людей есть учетная запись Google и учетная запись Facebook.Я хотел бы разрешить пользователям входить в свою учетную запись, а затем добавлять дополнительных провайдеров к тому же пользователю (при условии совпадения электронной почты).

Часть Identity Framework AspNetCore, кажется, жестко контролирует все.Я знаю, как переопределить представления, но не как переопределить поток управления.Как я могу окунуть свою собственную логику в процессы, чтобы принудительно войти в систему, зарегистрироваться?Я также хотел бы переадресовать пользователя внешним провайдерам, когда пользователь уже вошел в систему .

Все, что мне нужно, - это направление, они так сильно разделили проблемы с новым AspNetCoreчто это похоже на лук.Это затрудняет определение того, что вы хотите.Я даже не знаю, чего не знаю, чтобы начать.

1 Ответ

2 голосов
/ 30 марта 2019

Это уже работает так, как вы хотите, пользователи могут добавлять любых провайдеров, настроенных вами на странице ~ / Identity / Account / Manage / ExternalLogins

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

...