1

我有MVC網站,擁有MVC Owin身份登錄。 因此,用戶可以使用社交網絡訪問我的網站。 現在我想讓用戶連接多個社交網絡到那裏帳戶。MVC Owin Identity將多個社交賬戶鏈接到單個用戶

例如 用戶在我的網站上使用Facebook註冊。 在註冊期間,通過Facebook用戶登錄連接爲他創建了新的本地用戶。

現在在用戶的個人資料頁面上我想添加其他社交活動並顯示已經關聯的社交活動。

如何使用MVC Owin Identity做到這一點?

回答

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