Bekommen Rolle der/s angemeldeten Benutzer in ASP.NET Kern MVC
Wie kann ich die angemeldeten Benutzer die Rolle der/s in ASP.NET Core-MVC? Ich will Funktionsdetails, sobald Benutzer sich anmeldet, in der Anwendung, aber mit den folgenden code, den ich bin nicht in der Lage zum abrufen der Rolle details
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);
}
Auch, ich habe die unten Methoden wie
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
var userRoles = await _userManager.GetRolesAsync(user);
Immer noch, ich bin nicht in der Lage, die Rolle details. Kann mir jemand bitte helfen?
Sie müssen zum abrufen der Benutzer aus der Datenbank. Man kann nicht einfach einen neuen Benutzer erstellen Instanz und füllen Sie einige der Eigenschaften.
InformationsquelleAutor XamDev | 2016-05-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchten Sie vielleicht zu prüfen, versuchen zu laden, die tatsächliche
ApplicationUser
Objekt über denFindByEmail()
oder eine andere Methode, und übergeben das Objekt in derGetRolesAsync()
- Methode, wie unten gesehen :Ein vollständigeres Beispiel Aussehen könnte :
InformationsquelleAutor Rion Williams