最近项目中用到cookie,登录的时候用js写如cookie,如果设置了有效期,那么这个cookie可以用ckeadm工具查看到,而且也可以用Request.Cookie[Key]的方式获取到数据。
然后如果没有设置有效期的话,js写入的cookie,无法通过Request.Cookie[Key]获取,也无法通过这个工具查看到。
function addAuthenticationCookie(name, value, path) { //Authentication using minutes as unit
var name = escape(name);
var value = escape(value);
path = path == "" ? "" : ";path=" + path;
document.cookie = name + "=" + value + path;
}
同样,如果你用Response.AppendCookie(cookie)的形式来写入cookie,同时也没有指定有效期的话,这个cookie也是无法通过工具查看到,而且当你关闭浏览器的时候就自动失效。
//创建一个没有过期日期的cookie
HttpCookie cookie = new HttpCookie("MyCookie");
cookie.Values.Add("UID", LoginID);
context.Response.AppendCookie(cookie);
查了一些资料显示,如果没有指定有效期的话,cookie是保存在内存中的,当浏览器关闭的时候自动销毁。如果指定了有效期却保存在硬盘上。也许重点就在于此。
以上我经过代码测试过的,如有不正确的请指出。