asp.net core 2.1 Перенаправление страницы Razor на основе ролей во время loigin - PullRequest
0 голосов
/ 13 января 2019

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");
       .....
       ....
      }
}
...