首页 文章

MVC Owin Identity将多个社交帐户链接到单个用户

提问于
浏览
1

我有MVC网站,有MVC Owin Identity登录 . 因此用户可以使用社交网络访问我的网站 . 现在我想允许用户将多个社交网络连接到那些帐户 .

例如用户在我的网站上使用Facebook注册 . 在注册期间,通过Facebook UserLogin连接为他创建了新的本地用户 .

现在在用户的 Profiles 页面上,我想添加其他社交内容并显示已连接的社交内容 .

如何使用MVC Owin Identity做到这一点?

1 回答

  • 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");
        }
    

相关问题