4
Visual Studio-爲AspNet Identity生成一堆代碼,即LoginController和ManageController。在ManageController有下面的代碼:AspNet Identity使用同一電子郵件進行多個外部登錄
[HttpGet, Route("Manage/LinkLoginCallback")]
public async Task<ActionResult> LinkLoginCallback(string returnUrl)
{
ExternalLoginInfo loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(XsrfKey, User.Identity.GetUserId());
...
var result = await UserManager.AddLoginAsync(User.Identity.GetUserId(), loginInfo.Login);
if (result.Succeeded)
{
...
}
}
我這段代碼遇到的問題是,UserManager.AddLoginAsync()
拋出一個異常時,添加了現有的電子郵件地址了外部登錄。然而,這似乎是一個有效的方案:
- 用戶與電子郵件簽署了谷歌加:[email protected]
- 用戶使用相同的電子郵件註冊Facebook。
- 現在,由於此例外情況,他們無法在應用程序的單個本地帳戶下「鏈接」這兩個帳戶。
如何處理這種情況並添加兩個帳戶?這樣做有什麼問題嗎?