Обновляет ли кэш приложения время ожидания во время постбэков?

#c# #asp.net #vb.net

#c# #asp.net #vb.net

Вопрос:

У меня есть этот фрагмент кода, в котором я сохраняю пользовательские данные в кэше приложения, чтобы предотвратить вход нескольких пользователей с использованием одних и тех же учетных данных.

 private void Button1_Click(object sender, System.EventArgs e)
{
//validate your user here (Forms Auth or Database, for example)
// this could be a new "illegal" logon, so we need to check
// if these credentials are already in the Cache
string sKey=TextBox1.Text TextBox2.Text;
string sUser=Convert.ToString(Cache[sKey]);
if (sUser==null || sUser==String.Empty){
// No Cache item, so sesion is either expired or user is new sign-on
// Set the cache item and Session hit-test for this user---
TimeSpan SessTimeOut=new TimeSpan(0,0,HttpContext.Current.Session.Timeout,0,0);
HttpContext.Current.Cache.Insert(sKey,sKey,null,DateTime.MaxValue,SessTimeOut,
   System.Web.Caching.CacheItemPriority.NotRemovable,null);
Session["user"]=TextBox1.Text TextBox2.Text;
// Let them in - redirect to main page, etc.
Label1.Text="<Marquee><h1>Welcome!</h1></marquee>";

}
else
{
// cache item exists, so too bad...
Label1.Text="<Marquee><h1><font color=red>ILLEGAL LOGIN ATTEMPT!!!</font></h1></marquee>";
return;
}

}
 

Однако срок действия кэша истекает через 20 минут, что является таймаутом сеанса по умолчанию. До сих пор я ничего не знал о кэше приложений. Итак, я хочу знать, истекает ли срок его действия через 20 минут или он обновляется при обратной передаче, как это делают сеансы. Спасибо.

Комментарии:

1. Состояние приложения должно быть доступно в любое время. Смотрите Исключения здесь .

2. постбэки повторно устанавливают тайм-аут. И на самом деле события завершения сеанса () и запуска сеанса () не будут запускаться. Браузер будет кэшировать вход пользователя в систему — и в этом случае вы не увидите никаких событий session() . Но для ясности — да, любая обратная передача перезапускает тайм-аут сеанса.

3. Хорошо, спасибо за совет.