ブラウザを開いた状態で非永続的なCookieのタイムアウトを処理する最良の方法は、タイムアウトのキー値を追加することです。以下のコードは、ログインユーザーIDキー値と、ブラウザーの互換性のための暗号化(含まれていません)のセキュリティに使用されます。フォーム認証は使用しません。
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
}
フォーム認証とGoogleChromeを使用して互換性の問題を見つけました。