У меня простая система входа в систему и выхода из системы, и я не использую никаких областей, все виды находятся в представлениях папок.
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>
или мне нужно использовать метод формы?