asp.net js 存取cookie

时间:2023-03-09 03:09:58
asp.net   js  存取cookie

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 == )
{
CityCookieKey.Value = "FZ";
CityCookieValue.Value = "";
CityName = "福州";
CityCookieName.Value = CityName;
}
else if (companyID == )
{
CityCookieKey.Value = "XM";
CityCookieValue.Value = "";
CityName = "厦门";
CityCookieName.Value = CityName; }
else
{
//获取分配中心地址 跳转
context.Response.Redirect(ConfigurationManager.AppSettings["WebCenter"]);
}
CityCookieKey.Expires = DateTime.Now.AddDays();
CityCookieValue.Expires = DateTime.Now.AddDays();
CityCookieName.Expires = DateTime.Now.AddDays();
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 == )
{
CityName = "福州";
}
if (CityValue == )
{
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(); //另外一种创建Cookie的方式。
HttpCookie cookie1 = new HttpCookie("cp4","sssss");
cookie1.Expires = DateTime.Now.AddDays();
Response.Cookies.Add(cookie1); }
}
}

cookie 限制  4K  20个浏览器对每个网站存储的限制   300个  有些浏览器对本身存储总数的限制