В целях выхода из системы после тайм-аута сессии я использую этот фрагмент кода
if (context.Session.IsNewSession)
{
string sessionCookie = context.Request.Headers["Cookie"];
if ((null != sessionCookie) && (sessionCookie.IndexOf("ASP.NET_SessionId") >= 0))
{
var controller = (BaseController)filterContext.Controller;
var routeValueDictionary = new RouteValueDictionary(new { controller = "Account", action = "SessionLogOff", area = string.Empty });
filterContext.Result = new RedirectToRouteResult(routeValueDictionary);
}
}
, который реализован в OnActionExecuting как ActionFilterAttribute.
Я использую ASPNet Identity 2.2 и MVC5.2.
Это хорошо работает, когда истекает срок сеанса и Session.IsNewSession равен true.
Моя проблема в том, что браузер перезапускается, приложение запускается, и пользователь уже существует (cookie),Session.IsNewSession имеет значение true, и пользователь вышел из системы при первом действии, которое он пытается выполнить.