Model view controller MVC Owin标识将多个社交帐户链接到单个用户

Model view controller MVC Owin标识将多个社交帐户链接到单个用户,model-view-controller,asp.net-identity,social-networking,owin,Model View Controller,Asp.net Identity,Social Networking,Owin,我有MVC网站,有MVC Owin身份登录。 所以用户可以使用社交网络访问我的网站。 现在我想允许用户将多个社交网络连接到这些帐户 e、 g。 在我的网站上使用Facebook注册的用户。 在注册期间,通过Facebook UserLogin连接为他创建了新的本地用户 现在在用户的个人资料页面上,我想添加其他社交网站,并显示已连接的社交网站 如何使用MVC Owin标识实现这一点?我的解决方案很简单。 我只是检查用户是否已登录,并将新的社交网站附加到他身上 public async Ta

我有MVC网站,有MVC Owin身份登录。 所以用户可以使用社交网络访问我的网站。 现在我想允许用户将多个社交网络连接到这些帐户

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

现在在用户的个人资料页面上,我想添加其他社交网站,并显示已连接的社交网站

如何使用MVC Owin标识实现这一点?

我的解决方案很简单。 我只是检查用户是否已登录,并将新的社交网站附加到他身上

    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");
    }
公共异步任务回调(字符串提供程序)
{
var externalLoginInfo=wait _applicationSignInManager.AuthenticationManager.getexternallogininfosync();
if(externalLoginInfo==null)
{
返回重定向操作(“索引”、“签名”);
}
//检查具有此外部登录提供程序的用户是否已登录
如果(等待应用程序SignInManager.UserManager.FindAsync(externalLoginInfo.Login)!=null)返回RedirectToAction(“索引”、“社交”);
wait_applicationSignInManager.UserManager.AddLoginAsync(HttpContext.GetOwinContext().Authentication.User.Identity.GetUserId(),externalLoginInfo.Login);
返回操作(“索引”、“社交”);
}