【问题标题】:MVC Owin Identity Linking multiple social accounts to a single userMVC Owin Identity 将多个社交帐户链接到单个用户
【发布时间】:2015-04-02 13:35:39
【问题描述】:
我的 MVC 网站具有 MVC Owin Identity 登录。
所以用户可以使用社交网络访问我的网站。
现在我想允许用户将多个社交网络连接到那里的帐户。
例如
用户在我的网站上使用 Facebook 注册。
在注册期间,通过 Facebook UserLogin 连接为他创建了新的本地用户。
现在在用户的个人资料页面上,我想添加其他社交并显示已连接的社交。
如何使用 MVC Owin Identity 做到这一点?
【问题讨论】:
标签:
model-view-controller
asp.net-identity
social-networking
owin
【解决方案1】:
我的解决方案很简单。
我只是检查用户是否已登录并将新社交附加到他。
public async Task<ActionResult> Callback(string provider)
{
var externalLoginInfo = await _applicationSignInManager.AuthenticationManager.GetExternalLoginInfoAsync();
if (externalLoginInfo == null)
{
return RedirectToAction("Index", "SignIn");
}
// Check if the user with this external login provider already has a login
if (await _applicationSignInManager.UserManager.FindAsync(externalLoginInfo.Login) != null) return RedirectToAction("Index", "Social");
await _applicationSignInManager.UserManager.AddLoginAsync(HttpContext.GetOwinContext().Authentication.User.Identity.GetUserId<long>(), externalLoginInfo.Login);
return RedirectToAction("Index", "Social");
}