私はasp.netコア1.1とアイデンティティ1.1を使用しています。私のアプリケーションには、「管理者」と「ユーザー」を含む 2 つの役割があります。「管理者」ユーザーはログイン後に「/AdminProfile/Index」に移動し、「ユーザー」ユーザーはログイン後に「/UserProfile/Index」に移動します。
私のログインコード:
[HttpGet]
public IActionResult Login(string returnUrl = null)
{
ViewData["ReturnUrl"] = returnUrl;
return View();
}
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
{
ViewData["ReturnUrl"] = returnUrl;
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
return RedirectToLocal(returnUrl);
}
else
{
ModelState.AddModelError(string.Empty, "Error");
return View(model);
}
}
return View(model);
}
そして RedirectToLocal アクションで:
private IActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
if (User.IsInRole("Admin"))
{
return Redirect("/AdminProfile/Index");
}
else
{
return Redirect("/UserProfile/Index");
}
}
}
User.IsInRole("Admin")
ユーザーの役割を確認するために使用しますが、常に false を返します。ID 1.1 でユーザーの役割を確認するにはどうすればよいですか?