Я занимаюсь разработкой приложения ASP.NET 3.5 WebForms, в котором я хотел бы, чтобы сессия прерывалась по истечении определенного периода времени.После чего, если пользователь пытается что-то сделать, приложение должно перенаправить их на страницу, сообщающую, что время сеанса истекло, и что ему нужно будет начать сначала.Насколько мне известно, довольно стандартные вещи.
Однако я не могу установить тайм-аут сеанса для проверки этой функциональности, будь то в Visual Studio или IIS.Вот мои настройки состояния сеанса в web.config:
<sessionState mode="SQLServer"
allowCustomSqlDatabase="true"
sqlConnectionString="<ConnectionString>"
cookieless="false"
timeout="1" />
Вот как я тестирую время ожидания сеанса:
public bool IsSessionTimeout
{
get
{
// If the session says its a new session, but a cookie exists, then the session has timed out.
if (Context.Session != null && Session.IsNewSession)
{
string cookie = Request.Headers["Cookie"];
return !string.IsNullOrEmpty(cookie) && cookie.IndexOf("ASP.NET_SessionId") >= 0;
}
else
{
return false;
}
}
}
Похоже, что Session.IsNewSession
всегда возвращает false
,что имеет смысл, потому что метод Session_End никогда не вызывается в моем Global.asax.cs.Чего мне не хватает?