в приложении MVC код доходит до return Redirect(login.ReturnUrl ?? "/Home"); но по указанному URL не переходит

Допустим на странице Home/Index нажимаю на ссылку

<a asp-area="User" asp-controller="cart" asp-action="Add" asp-route-productId="@produrt.Id" role="button"><img src="~/images/korzina.png" width="30" height="30" /></a>

(на самом деле не важно откуда и куда я пытаюсь перейти, это происходит при совершении любого действия для которого необходима авторизация)
меня как и должно быть перебрасывает на эту страницу:

<form method="post">
<div class="modal-body">
    <div>
        <h3>Вход</h3>
    </div>
    <input type="hidden" name="ReturnUrl" value="@Model.ReturnUrl" />
    <div asp-validation-summary="All">
      <div class="row">
            <div class="col-6">
                <input class="form-control" type="text" asp-for="UserName" />
                <span asp-validation-for="UserName"></span>
            </div>
        </div>
        <div class="row">
            <div class="col-6">
                <input class="form-control" type="password" asp-for="Password" />
                <span asp-validation-for="Password"></span>
            </div>
        </div>
        <div class="row">
            <div class="col-6">
                <label>Запомнить меня</label>
                <input class="form-control" type="checkbox" name="rememberMe" asp-for="RememberMe" value="true" />
                <span asp-validation-for="RememberMe"></span>

            </div>
        </div>
    </div>
</div>
<div class="modal-footer">
    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
    <button type="submit" asp-area="User" asp-controller="Account" asp-action="Login">Войти</button>
    <a asp-area="User" asp-controller="Account" asp-action="Register" asp-route-returnUrl="@Model.ReturnUrl">Регистрация </a>
</div>
</form>

Отсюда передается модель в следующий контроллер в метод login, причем модель валидная с ожидаемым returnUrl, код доходит до return Redirect(login.ReturnUrl ?? "/Home");
А дальше я не понимаю что происходит, я просто снова оказываюсь на странице авторизации, на скриншоте видно что данные в модели корректные и что код заходит в if и доходит до return

public class AccountController : Controller
{
    private readonly UserManager<User> _userManager;
    private readonly SignInManager<User> _signInManager;
    public AccountController(UserManager<User> userManager, SignInManager<User> signInManager)
    {
        _userManager = userManager;
        _signInManager = signInManager;
    }
    public IActionResult Login(string returnUrl)
    {
        return View(new Login() { ReturnUrl = returnUrl });
    }
    [HttpPost]
    public IActionResult Login(Login login)
    {
        if (ModelState.IsValid)
        {
            var result = _signInManager.PasswordSignInAsync(login.UserName, login.Password, login.RememberMe, false).Result;
            if (result.Succeeded)
            {
                return Redirect(login.ReturnUrl ?? "/Home");
            }
            else
            {
                ModelState.AddModelError("", "Неправильный пароль!");
            }
        }
        return View("Login", login);
    }

введите сюда описание изображения

скриншот с данными в модели

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Walstper

Судя по тому что у вас после попытки авторизации появляется то же окно, надо проверить 2 варианта:

  1. а что возвращает метод /user/cart/add ? Если он не возвращает вьюшку или не роутит по истории / роутит в определённое место, вы останетесь на последней вьюшке которую запросили.

  2. посмотрите как настроена внутренняя авторизация (cookies, jwt tokents, etc) - возможно у вас проблема здесь

→ Ссылка