在浏览器打开的情况下处理非持久性 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
}
我发现使用表单身份验证和 Google Chrome 存在兼容性问题。