2017-02-19 44 views
0

Как мы можем получить доступ к свойствам ApplicationUser из Контроллера учетных записей в. При создании объекта ApplicationUser с пользователем создается ссылка на объект с нулевой ошибкой. пример кодаОбъект ApplicationUser для Facebook или других социальных медиа-логинов в Ap.net Core

public async Task<IActionResult> ExternalLoginCallback(string returnUrl = null, string remoteError = null) 
    { 
     if (remoteError != null) 
     { 
      ModelState.AddModelError(string.Empty, $"Error from external provider: {remoteError}"); 
      return View(nameof(Login)); 
     } 
     var info = await _signInManager.GetExternalLoginInfoAsync(); 
     if (info == null) 
     { 
      return RedirectToAction(nameof(Login)); 
     } 

     // Sign in the user with this external login provider if the user already has a login. 
     var result = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, isPersistent: false); 
     if (result.Succeeded) 
     { 
      _logger.LogInformation(5, "User logged in with {Name} provider.", info.LoginProvider); 

      //I want to access the ApplicationUser Properites here 

      return RedirectToLocal(returnUrl); 
     } 
     if (result.RequiresTwoFactor) 
     { 
      return RedirectToAction(nameof(SendCode), new { ReturnUrl = returnUrl }); 
     } 
     if (result.IsLockedOut) 
     { 
      return View("Lockout"); 
     } 
     else 
     { 
      // If the user does not have an account, then ask the user to create an account. 
      ViewData["ReturnUrl"] = returnUrl; 
      ViewData["LoginProvider"] = info.LoginProvider; 
      var email = info.Principal.FindFirstValue(ClaimTypes.Email); 
      return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = email }); 
     } 
    } 

ответ

1

Вы должны быть в состоянии получить доступ к ApplicationUser, как это ...

//I want to access the ApplicationUser Properites here 
var user = await _userManager.FindByLoginAsync(info.LoginProvider, info.ProviderKey); 
+0

спасибо человеку –

+0

Вы можете :-) –