Этот вопрос был размещен онлайн более 1000 раз.Лучший способ справиться с непостоянным временем ожидания файлов cookie при открытом браузере - добавить ключевое значение для времени ожидания.Приведенный ниже код используется для регистрации значения ключа идентификатора пользователя и безопасности шифрования (не входит в комплект) для обеспечения совместимости браузера.Я не использую проверку подлинности с помощью форм.
HttpCookie cookie = new HttpCookie(name);
cookie.Values["key1"] = value;
cookie.Values["key2"] = DateTime.Now.AddMinutes(70).ToString();
//timeout 70 minutes with browser open
cookie.Expires = DateTime.MinValue;
cookie.Domain = ConfigurationManager.AppSettings["website_domain"];
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
При проверке значения ключа cookie используйте:
try
{
DateTime dateExpireDateTime;
dateExpireDateTime = DateTime.Parse(HttpContext.Current.Request.Cookies[name]["key2"]);
if (DateTime.Now > dateExpireDateTime)
{
//cookie key value timeout code
}
else
{
//reset cookie
}
catch
{
//clear cookie and redirect to log in page
}
Я обнаружил проблемы совместимости при использовании проверки подлинности с помощью форм и Google Chrome.