asp.net-mvc - Identity 2.0 链接多个登录提供者

标签 asp.net-mvc login oauth asp.net-identity

我终于设法在我的 MVC 网站上将 Facebook 实现为外部登录提供程序,这似乎工作正常,但我想知道允许多个外部登录提供程序链接到单个帐户的正确/安全方法是什么。

假设我使用我的 facebook ID 登录,找不到使用相同电子邮件地址的现有帐户,并且我的网站保留了一个新帐户,其中包含他们的电子邮件地址和他们的 facebook token 等相关联。

第二天我用我的 Google 帐户登录,如果我检查我的数据库中已经有匹配电子邮件地址的帐户,我该怎么办?

1) 自动将此 Google 帐户与现有帐户相关联,并且
登录?

2) 询问用户是否希望将他们的 google 帐户链接到
我们找到了已经存在的帐户?

3)还有什么?

谢谢你。

最佳答案

这真的取决于你。但是 VS2013 模板中提供的默认值假定您的内部用户和任何外部登录之间存在一对多的关系。如果您使用 UserManager 检索用户,您将看到用户登录的每个外部提供程序的 IList。

当他们使用新的提供商登录时,您通常不会自动知道该用户与另一个提供商的登录名相关联。当您登录时,它通过外部 ProviderKey 查找用户,因此最初找不到与内部用户的任何关系。此时,您可以按姓名、电子邮件(使用自定义用户存储)等搜索用户以根据需要进行链接。

关于asp.net-mvc - Identity 2.0 链接多个登录提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25186175/

相关文章:

asp.net-mvc - MVC ERP 解决方案

c# - 如何强制 MVC4 中的 WebAPI 在 json 结果中将空字符串呈现为空

ajax - 更新 session 并在我的 View 中使用它

oauth - VSTS - 允许脚本在发布管理中访问 OAuth token

node.js - Google Oauth 给出代码兑换错误

包含某些正则表达式的 JavaScript 缩小失败

session - 无法登录 Magento 管理员

ios - 使用 SDK 4.0.1 的 Objective-C Facebook 登录

login - keycloak 初始登录不适用于管理员用户名和密码

azure - 使用客户端 key 而不是用户凭据通过 MSAL.Net 获取 token