2016-01-01 6 views
0

Я пробовал все разные способы, но не смог получить текущий идентификатор пользователя после успешного входа в систему. Ошибок не было.Не удалось получить идентификатор пользователя

Ниже приведен код из коробки:

 // Sign in the user with this external login provider if the user already has a login 
     var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false); 
     switch (result) 
     { 
      case SignInStatus.Success: 
       Session["userID"] = User.Identity.GetUserId(); <---- here 
       return RedirectToLocal(returnUrl); 
      case SignInStatus.LockedOut: 
       return View("Lockout"); 
      case SignInStatus.RequiresVerification: 
       return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false }); 
      case SignInStatus.Failure: 
      default: 

Пожалуйста помочь. Спасибо.

+0

В отладчике, то, что возвращается и сохраняется в 'result'? Это то, чего вы ожидаете или нет? –

+0

Результат: null. – blumonde

+0

В этом случае я предлагаю удостовериться, что 'loginInfo' - это то, что вы ожидали бы, проверьте, что через отладчик вам может потребоваться обратный путь, пока не найдете источник ошибки. В противном случае, я думаю, вы получите случай по умолчанию на коммутаторе –

ответ

0

Ниже, как я решил мой вопрос:

  case SignInStatus.Success: 
       ApplicationUser userid = UserManager.FindByEmail(loginInfo.Email); 
       string UserId = userid.Id; 
Смежные вопросы