asp.net
//传进来的 public BaseController(BaseHttpHandler handler, HttpContext context) // { //根据地址设置cookie string CityName = ""; if (context.Request.Cookies["_AreaKey"] == null || context.Request.Cookies["_AreaValue"] == null) { var companyID = ConvertHelper.ToInt(context.Request.QueryString["CompanyID"]); HttpCookie CityCookieKey = new HttpCookie("_AreaKey"); HttpCookie CityCookieValue = new HttpCookie("_AreaValue"); HttpCookie CityCookieName = new HttpCookie("_AreaName"); if (companyID == 3) { CityCookieKey.Value = "FZ"; CityCookieValue.Value = "3"; CityName = "福州"; CityCookieName.Value = CityName; } else if (companyID == 4) { CityCookieKey.Value = "XM"; CityCookieValue.Value = "4"; CityName = "厦门"; CityCookieName.Value = CityName; } else { //获取分配中心地址 跳转 context.Response.Redirect(ConfigurationManager.AppSettings["WebCenter"]); } CityCookieKey.Expires = DateTime.Now.AddDays(1); CityCookieValue.Expires = DateTime.Now.AddDays(1); CityCookieName.Expires = DateTime.Now.AddDays(1); CityCookieKey.Path = "/"; CityCookieValue.Path = "/"; CityCookieName.Path = "/"; context.Response.Cookies.Add(CityCookieKey); context.Response.Cookies.Add(CityCookieValue); context.Response.Cookies.Add(CityCookieName); } else { var CityValue = ConvertHelper.ToInt(context.Request.Cookies["_AreaValue"].Value); if (CityValue == 3) { CityName = "福州"; } if (CityValue == 4) { CityName = "厦门"; } }
如果是顶级域名下的二级域名跨域 可以设置cookie的domain
js
//写cookies function setCookie(name, value,time) { var Days = time||365; var exp = new Date(); exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString()+";path=/;"; } //读取cookies function getCookie(sName) { var aCookie = document.cookie.split("; "); for (var i = 0; i < aCookie.length; i++) { var aCrumb = aCookie[i].split("="); if (sName == aCrumb[0]) return unescape(aCrumb[1]); } return null; } //删除cookies function delCookie(name) { var exp = new Date(); exp.setTime(exp.getTime() + -1 * 24 * 60 * 60 * 1000); var cval = getCookie(name); if (cval != null) document.cookie = name + "=;expires=" + exp.toGMTString() + "; path=/;"; } //清楚所有cookie function clareCookie() { var strCookie = document.cookie; var arrCookie = strCookie.split("; "); // 将多cookie切割为多个名/值对 for (var i = 0; i < arrCookie.length; i++) { // 遍历cookie数组,处理每个cookie对 var arr = arrCookie[i].split("="); if (arr.length > 0) delCookie(arr[0]); } }
传智demo
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace CZBK.ItcastProject.WebApp._2015_5_31 { public partial class CookieDemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Cookie:是一个客户端状态保持机制,(网站的数据是存在客户端), //与隐藏域与ViewState对象都属于这种客户端状态保持,Cookie中存储的是关于网站相关的文本字符串数据。 //Cookie的存储方式有两种,如果不指定过期时间,那么存储在客户端浏览器内存中,如果指定了过期时间, //那么存储在客户端的磁盘上。Cookie是与具体的网站有关的,如果我们将Cookie设置了过期时间, //那么当用户在指定时间内访问我们的网站,那么属于我们网站的Cookie数据会放在请求报文中发送过来, //其它网站的Cookie不会发送。 //创建Cookie. // Response.Cookies["cp1"].Value = "itcast"; //创建Cookie并且指定过期时间. //Response.Cookies["cp2"].Value = "laowang"; //Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(3); //删除Cookie // Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1); //Cookie跨域(域名) Response.Cookies["cp3"].Value = "laowang"; //主域名的cookie会自动分享给子域名,但是子域名的不会,所以在这里设置主域名,就实现跨域了 // Response.Cookies["cp3"].Domain = "xxx.com";//设置主域的。 Response.Cookies["cp3"].Path = "/2015-5-31"; Response.Cookies["cp3"].Expires = DateTime.Now.AddDays(3); //另外一种创建Cookie的方式。 HttpCookie cookie1 = new HttpCookie("cp4","sssss"); cookie1.Expires = DateTime.Now.AddDays(3); Response.Cookies.Add(cookie1); } } }
cookie 限制 4K 20个浏览器对每个网站存储的限制 300个 有些浏览器对本身存储总数的限制