IsInRole возвращает false после успешного входа в систему. То же самое работает и в других действиях и контроллерах после успешной полной аутентификации и загрузки.
IsInRole работает в других местах, есть ли другой способ добиться этого.
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl = returnUrl ?? Url.Content("~/");
if (ModelState.IsValid)
{
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout,
///set lockoutOnFailure: true
var result = await
_signInManager.PasswordSignInAsync(Input.Email,
Input.Password,
Input.RememberMe, lockoutOnFailure: true);
if (result.Succeeded)
{
_logger.LogInformation("User logged in.");
if (User.IsInRole("Admin"))
{
return LocalRedirect("~/KeyRequests/AdminIndex");
}
else
{
return LocalRedirect(returnUrl);
}
}
if (result.RequiresTwoFactor)
{
return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });
}
if (result.IsLockedOut)
{
_logger.LogWarning("User account locked out.");
return RedirectToPage("./Lockout");
.....
....
}
}