Есть мастер страница со следующим участком отвечающим за карточку пользователя (возможность авторизироваться или перейди в профиль/выйти из аккаунта)
Код
<div class="header_form">
<a class="logo_hiden" href="/">
<img src="~/img/logo.svg" alt="TRUprogram">
</a>
@if (Context.Session.Keys.Contains("user"))
{
<div class="lk_mini">
<div class="user">
<a class="n" href="~/User/Profile">
@Context.Session.GetString("user")
</a>
<a class="v" href="~/User/Logout">Выйти</a>
</div>
<a href="~/User/Profile">
<img width="50px" src="@Context.Session.GetString("userAvatar")" alt="avatar">
</a>
</div>
}
else
{
<a href="~/User/Login"><input class="log_btn" type="button" value="Вход"></a>
}
</div>
проблема возникает при обработке нажатия кнопки выхода, вот код обработчика:
Код
public IActionResult Logout()
{
if (!HttpContext.Session.Keys.Contains("user"))
return LocalRedirectPermanent("/");
foreach (var key in HttpContext.Session.Keys)
{
HttpContext.Session.Remove(key);
}
Response.Cookies.Delete(".AspNetCore.Session");
return LocalRedirectPermanent("/");
}
суть проблемы в том, что этот метод не вызывается (проверял через брейкпоинт) и происходит сразу редирект (код 301) на главную страницу при чем по полному пути (/OtherPages/Index) , при этом иногда метод все же вызывается, но установить закономерность не удалось.