Obtenez de rôle/s de la session courante de l'utilisateur dans ASP.NET Core, MVC

Comment puis-je obtenir de l'utilisateur connecté s) rôle (s) dans ASP.NET Core, MVC? Je veux obtenir rôle de détails dès que l'utilisateur se connecte à l'application, mais en utilisant le code suivant je ne suis pas en mesure de récupérer le rôle de détails

public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
{
    ViewData["ReturnUrl"] = returnUrl;
    if (ModelState.IsValid)
    {

        var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);

        if (result.Succeeded)
        {
            _logger.LogInformation(1, "User logged in.");

           bool available = User.IsInRole("Admin"); 
            return RedirectToLocal(returnUrl);
        }
        if (result.RequiresTwoFactor)
        {
            return RedirectToAction(nameof(SendCode), new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
        }
        if (result.IsLockedOut)
        {
            _logger.LogWarning(2, "User account locked out.");
            return View("Lockout");
        }
        else
        {
            ModelState.AddModelError(string.Empty, "Invalid login attempt.");
            return View(model);
        }
    }

    //If we got this far, something failed, redisplay form
    return View(model);
}

Aussi, j'ai utilisé les méthodes ci-dessous comme

var user = new ApplicationUser { UserName = model.Email, Email = model.Email };

var userRoles = await _userManager.GetRolesAsync(user);

Encore, je ne suis pas en mesure d'obtenir le rôle de détails. Quelqu'un peut s'il vous plaît aider sur ce point?

Vous avez besoin de récupérer l'utilisateur de la base de données. Vous ne pouvez pas il suffit de créer une nouvelle instance d'utilisateur et de combler certaines propriétés.

OriginalL'auteur XamDev | 2016-05-31