mvc 6でログインしているユーザーの役割を取得するにはどうすればよいですか?私はMVC 6で現在ログインしているユーザーの役割を取得します
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);
}
また、役割の詳細を取得することはできませんよアプリケーションにユーザーがログインとしてではなく、次のコードを使用して、すぐに役割の詳細を取得したい、私は
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
var userRoles = await _userManager.GetRolesAsync(user);
のような以下の方法を使用していました
まだ、私は役割の詳細を取得できません。誰でもこれを助けてくれますか?
データベースからユーザーを取得する必要があります。新しいユーザーインスタンスを作成し、いくつかのプロパティを入力するだけではありません。 –