ASP.net 2.2 MVC: выход - PullRequest
       50

ASP.net 2.2 MVC: выход

0 голосов
/ 20 сентября 2019

У меня простая система входа в систему и выхода из системы, и я не использую никаких областей, все виды находятся в представлениях папок.

Solution treeview

Iпытался выйти с этой функцией, на мой взгляд, но это приводит меня к странице localhost:port/Account/logout, не передавая мою функцию выхода из системы в AccountController.

<a class="" asp-area="" asp-controller="Account" asp-action="Logout">Logout</a>

Поиск в Google привел меня к форме выхода из системы,но мне нужно позвонить в область Identity, чтобы заставить ее работать.

<form asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Action("Index", "Home", new { area = "" })" method="post" id="logoutForm" class="ml-auto">
    <ul class="nav navbar-top-links navbar-right">
        <li><button type="submit" class="fa fa-sign-out btn btn-w-m btn-link">Logout</button></li>
    </ul>
</form>

Я нахожу это очень странным, потому что у меня нет этой области.Мой AccountController имеет простую стандартную функцию выхода из системы, но я туда не попадаю.

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Logout()
{
    await _signInManager.SignOutAsync();
    _logger.LogInformation("User logged out.");
    return RedirectToAction(nameof(HomeController.Index), "Home");
}

Кто-нибудь знает, почему я туда не попадаю, все остальные мои функции передают AccountController: вход, регистрация, забыл пароль,.... Я не могу понять только выход из системы.

И возможно ли это с помощью простой ссылки <a> или мне нужно использовать метод формы?

1 Ответ

1 голос
/ 20 сентября 2019

Это потому, что действие вашего контроллера явно установлено на глагол POST.Ссылки по наследству используют GET, а не пост.Вам нужно было бы выполнить некоторую логику JavaScript, чтобы воспрепятствовать щелчку ссылки и использовать отправку после публикации или использовать метод формы, как показано, или переключить действие контроллера, чтобы использовать Get вместо Post.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...