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
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez peut-être envisager d'essayer de charger le réel
ApplicationUser
de l'objet via leFindByEmail()
ou d'une autre méthode et passage de cet objet dans leGetRolesAsync()
méthode comme on le voit ci-dessous :Un exemple plus complet pourrait ressembler à :
OriginalL'auteur Rion Williams