Я пытаюсь настроить тайм-аут сеанса в моем приложении.
Когда я помещаю следующий код в свой файл web.config, он отлично работает:
<sessionState cookieless="true" timeout="1" />
То есть Я вижу, что время моего сеанса истекло через 1 минуту. Однако этот код имеет побочный эффект, заключающийся в помещении идентификатора сеанса в URL-адрес, что нежелательно.
С другой стороны, если я использую следующий код в моем web.config, время ожидания сеанса не истекает. не менее 1 часа или дольше:
<sessionState cookieless="false" timeout="1" />
Чтобы определить, что время ожидания сеанса фактически истекло, я использую следующий код в моем _Layout.cs html:
@if (Session[MvcApplication._Ssn_UserName] == null)
{
Response.Redirect("~/Login/Index");
}
Когда тайм-аут работает, я вижу, что пользователь перенаправляется на мою страницу входа в систему каждый раз, когда он переходит на другую страницу или просто нажимает кнопку refre sh в браузере.
Я вижу такое же поведение при запуске из Visual Studio (IIS Express) или при работе в IIS.
Я много искал в Интернете и не обнаружил никакой корреляции между настройкой без файлов cookie и поведением тайм-аута. Приветствуются любые идеи.