我拥有MVC Owin Identity登录的MVC网站。 因此用户可以使用社交网络访问我的网站。 现在我想允许用户将多个社交网络连接到那些帐户。
e.g。 用户在我的网站上使用Facebook注册。 在注册期间,通过Facebook UserLogin连接为他创建了新的本地用户。
现在,在用户的个人资料页面上,我想添加其他社交内容并显示已关联的社交内容。
如何使用MVC Owin Identity做到这一点?
答案 0 :(得分: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");
}