我似乎无法弄清楚如何创建持久性与非持久性cookie.例如,它们在发回的HTTP标头中有何不同?
Tim*_*ora 72
Cookie具有隐式或显式设置的到期日期,用于控制它们持续多长时间(取决于用户代理实际执行它).Cookie可能仅在会话期间(或更短的时间段)持续存在.
如果cookie有效,它将与HTTP请求一起传递到它发起的域.只有设置cookie的域才能读取cookie(尽管有各种方法可以利用它,例如跨站点脚本).
如果您希望cookie在特定时间到期,请使用您选择的客户端或服务器端语言在其上设置过期日期.
如果您希望cookie在会话结束时过期,请不要设置过期日期.
cookie setter可以指定删除日期,在这种情况下,cookie将在该日期被删除.
如果cookie setter未指定日期,则在用户退出其浏览器后将删除cookie.
因此,指定日期是使Cookie在会话中存活的一种方式.因此,具有到期日期的cookie称为持久性.
作为示例应用程序,购物站点可以使用持久性cookie来存储用户放置在其篮子中的项目.(实际上,cookie可能是指存储在购物网站而不是计算机上的数据库中的条目.)这样,如果用户退出浏览器而未进行购买并稍后返回,他们仍然会在因此,他们不必再次寻找这些物品.如果这些cookie没有给出过期日期,它们将在浏览器关闭时到期,并且有关篮子内容的信息将丢失.
Dee*_*wal 10
ASP.NET中有两种类型的cookie
持久性cookie:
Cookie存储在您的计算机硬盘上.它们保留在您的硬盘上,可以被Web服务器访问,直到它们被删除或过期.
public void SetPersistentCookies(string name, string value)
{
HttpCookie cookie = new HttpCookie(name);
cookie.Value = value;
cookie.Expires = Convert.ToDateTime(“12/12/2008?);
Response.Cookies.Add(cookie);
}
Run Code Online (Sandbox Code Playgroud)
非持久性cookie:
Cookie仅在您的Web浏览器运行时保存.只有在您关闭浏览器之前,它们才能由Web服务器使用.它们不会保存在您的磁盘上.
public void SetNonPersistentCookies(string name, string value)
{
HttpCookie cookie = new HttpCookie(name);
cookie.Value = value;
Response.Cookies.Add(cookie);
}
Run Code Online (Sandbox Code Playgroud)
会话cookie
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
Response.Cookies.Add(cookie);
Run Code Online (Sandbox Code Playgroud)
带有特定时间戳的Cookie(.NET DateTime库)
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.Today.AddMonths(12); //or AddMinutes, or AddHours...
Response.Cookies.Add(cookie);
Run Code Online (Sandbox Code Playgroud)
持久性Cookie
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.MaxValue;
Response.Cookies.Add(cookie);
Run Code Online (Sandbox Code Playgroud)