ASP.NET Core Identity:同一帐户的多个提供程序

Ale*_*rou 2 c# asp.net-identity asp.net-core

我一直在尝试了解新的 ASP.NET Core Identity 框架。

我希望能够允许客户使用外部提供商登录,这样我就不必担心密码存储。如果我使用默认提供程序:.AddDefaultIdentity<EntityUser>(),以及.AddAuthentication(with AddFacebook, AddGoogle, AddMicrosoftAccount),那就有效。

有些人拥有 Google 帐户Facebook 帐户。我想允许用户登录他们的帐户,然后向同一用户添加其他提供商(只要电子邮件匹配)。

AspNetCore 的身份框架部分似乎严格控制一切。我知道如何覆盖视图,但不知道如何覆盖控制流。我如何将自己的逻辑融入其流程中以强制登录、注册?我还想在用户已经登录时将用户转发给外部提供商。

我需要的只是一个方向,他们已经将新的 AspNetCore 的关注点分开了,就像洋葱一样。这使得你很难知道你想要的东西在哪里。我什至不知道我不知道什么才能开始。

Joe*_*tte 5

它已经按照您想要的方式工作,用户可以添加您从 ~/Identity/Account/Manage/ExternalLogins 页面配置的任何提供程序

您可以看到ExternalLogins razor 页面的源代码具有逻辑,该逻辑将显示用户向其现有帐户添加社交身份验证的选项。