cookie操作


// 写cookie
HttpCookie cookie = new HttpCookie("Info");//定义cookie对象以及名为Info的项
DateTime dt = DateTime.Now;//定义时间对象
TimeSpan ts=new TimeSpan(1,0,0,0);//cookie有效作用时间,具体查msdn
cookie.EXPires = dt.Add(ts);//添加作用时间
cookie.Values.Add("user","cxbkkk");//增加属性
cookie.Values.Add("userid","1203");
Response.AppendCookie(cookie);//确定写入cookie中

//读取cookie
if(Request.Cookies["Info"]!=null)
{
string temp=Convert.ToString(Request.Cookies["Info"].Values["user"])+" "+Convert.ToString(Request.Cookies["Info"].Values["userid"]);
//读全部就用Request.Cookies["Info"].Value)
if(temp=="")
{
Response.Write("空");
}
else
Response.Write(temp);
}
else
{
Response.Write("error");
}

//修改cookie
Response.Cookies["Info"]["user"] = "2";
Response.Cookies["Info"].Expires = DateTime.Now.AddDays(1);

// 删除cookie下的属性
HttpCookie acookie=Request.Cookies["Info"];
acookie.Values.Remove("userid");
acookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(acookie); 删除所有cookie,就是设置过期时间为现在就行了
int limit=Request.Cookies.Count - 1;
for(int i=0;i<limit;i++)
{
acookie = Request.Cookies(i)
acookie.Expires = DateTime.Now.AddDays(-1)
Response.Cookies.Add(acookie)
}


// 读取所有 cookies
HttpCookieCollection cookies;
HttpCookie oneCookie;
cookies = Request.Cookies;

string[] cookieArray = cookies.AllKeys;
for (int i=0; i < cookieArray.Length; i++)
{
oneCookie = cookies[cookieArray[i]];
Response.Write(oneCookie.Name + " - " + oneCookie.Value);
}

// 添加单个cookies
if (Request.Browser.Cookies == true)
{
if (Request.Cookies["LastVisited1"] == null)
{
HttpCookie newCookie = new HttpCookie("LastVisited1",DateTime.Now.ToString());
newCookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(newCookie);
}
else
{
Response.Write(Request.Cookies["LastVisited1"].Value);
}
}

======================================================

附录:ASP.NET 2.0 中Cookies的Expires属性详解

response.cookies("cookiename").expires中expires的属性如下:

response.cookies("cookiename").expires=-1 表示网页显示之后过期

response.cookies("cookiename").expires=0 立即过期

response.cookies("cookiename").expires=data +10 当前时间+10天数 表示在10天以后过期了.

response.cookies("cookiename").expires=10 表示10分钟后过期..

单独表示是以分钟来做单位的,session的单位也是的,但是和date + 10 就不一样了 ,因为date是日期,日期的单位是天,10当然就变成天了。

以上就是设置过期时间的,但是单位是“天”,就是说这个cookie过一天才会无效,如果想让它在半小时或更短的时间就无效要怎么做呢?

response.cookie("cookiename").expires=dateadd("n",30,now())
"n"单位为“分钟”
或者
response.cookie("cookiename").expires=dateadd("s",1800,now())
"s"单位为“秒

 

 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Net;
using Towel.Common;
using Towel.DALFactory;
using Towel.IDAL;
using Towel.Model;
using System.Web;

namespace Towel.BLL
{
public class cookiesManage
{
//向cookies中添加商品
public void addCookies(CartInfo cartInfo)
{
HttpCookie cartCookie = null;
cartCookie = new HttpCookie("shoppingCart");
if (Request.Browser.Cookies == true)
{
if (Request.Cookies["shoppingCart"] == null)
{
cartCookie = new HttpCookie("shoppingCart");
}
else
{
cartCookie = Request.Cookies["shoppingCart"];
}
}
bool flag = true;
foreach (string item in cartCookie.Values)
{
if (item == cartInfo.PdtID.ToString())
{
flag = false;
break;
}
}
if (flag)
{
cartCookie.Values.Add(cartInfo.PdtID.ToString(), cartInfo.PdtID + "|" + cartInfo.PdtName + "|" + cartInfo.PdtCount + "|" + cartInfo.IsCart + "|" + cartInfo.CartMark + "|" + cartInfo.PdtPrice + "|" + cartInfo.PdtThumb + "|");
}
cartCookie.Expires = DateTime.Now.AddDays(30);
Response.Cookies.Add(cartCookie);
//Response.Redirect("");
}
//读取cookies
public List<CartInfo> getCookies()
{
List<CartInfo> cartInfors = new List<CartInfo>();
foreach (string item in Request.Cookies["shoppingCart"].Values)
{
if (item != null)
{
string[] w =Request.Cookies["shoppingCart"][item].Split(new char[] { '|' });
CartInfo cartinfo = new CartInfo();
cartinfo.PdtID = Convert.ToInt32(w[0]);
cartinfo.PdtName = w[1];
cartinfo.PdtCount = Convert.ToInt32(w[2]);
cartinfo.PdtPrice = Convert.ToDecimal(w[3]);
cartinfo.CartMark = w[4];
cartinfo.PdtPrice = Convert.ToDecimal(w[5]);
cartinfo.PdtThumb = w[6];
cartInfors.Add(cartinfo);
}
}
return cartInfors;
}
}

 

}

posted @ 2012-05-11 15:09  鸿雁@锦鲤  阅读(251)  评论(0编辑  收藏  举报