作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚按照 this article 中的说明进行操作将 Google 作为登录提供商添加到我的 MVC 5 应用程序。一切似乎都正常,但是当我通过谷歌登录时,它要我将谷歌提供的电子邮件/用户名注册为我的应用程序中的新帐户。如果我让电子邮件保持原样并单击“注册”按钮,它会告诉我该地址已被占用,因为我之前已经在我的应用程序自己的登录提供程序上注册了。
如何调整 MVC 项目模板生成的默认代码,以允许我将 Google 登录名与现有的本地帐户相关联?
附言我在使用 Facebook 时遇到了完全相同的问题。
最佳答案
我完全支持@Chris Pratt 提出的观点但是我不确定所使用的代码是否足以满足 OP 的要求。
在 ExternalLoginCallback 内的默认 block 中添加此代码应该可以完成工作
ApplicationUser user = await UserManager.FindByNameAsync(loginInfo.Email);
if (user != null)
{
var addLoginResult = await UserManager.AddLoginAsync(user.Id, loginInfo.Login);
if (addLoginResult.Succeeded)
{
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
return RedirectToLocal(returnUrl);
}
}
关于asp.net-mvc - 将新的 Google 或 Facebook 登录名与现有帐户相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32680412/
我是一名优秀的程序员,十分优秀!