欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中的Cookie

程序员文章站 2022-07-11 10:14:24
cookie属性: name字段为一个cookie的名称。 value字段为一个cookie的值。 domain字段为可以访问此cookie的域名。 path字段为可以访问此cookie的页面路径。 比如domain是abc.com,path是/test,那么只有/test路径下的页面可以读取此co ......

cookie属性:

name字段为一个cookie的名称。

value字段为一个cookie的值。

domain字段为可以访问此cookie的域名。

path字段为可以访问此cookie的页面路径。 比如domain是abc.com,path是/test,那么只有/test路径下的页面可以读取此cookie。

expires 字段为此cookie超时时间。若设置其值为一个时间,那么当到达此时间后,此cookie失效。不设置的话默认值是session,意思是cookie会和session一起失效。当浏览器关闭(不是浏览器标签页,而是整个浏览器) 后,此cookie失效。

size字段 此cookie大小。

http字段  cookie的httponly属性。若此属性为true,则只有在http请求头中会带有此cookie的信息,而不能通过document.cookie来访问此cookie。

secure字段 设置是否只能通过https来传递此条cookie

在这里只写了简单的cookie操作

设置cookie

public void addcookie()
{
//方法一:
httpcookie cookie1 = new httpcookie("cookiename");
cookie1.expires = datetime.now.adddays(1);//设置过期时间
cookie1.value = "value";
response.cookies.add(cookie1);//响应一个cookies
//system.web.httpcontext.current.response.cookies.add(cookie1);//作用同 response.cookies.add(cookie1),响应一个cookies
//方法二:
response.cookies["cookiename"].value = "value";
// response.cookies["cookiename"].values["key"] = "value";//存多值
response.cookies["cookiename"].expires = datetime.now.adddays(1);//设置过期时间
//方法三:
httpcookie cookie3 = new httpcookie("cookiename");
datetime dt = datetime.now; //获取当前时间
timespan ts = new timespan(0, 0, 1, 0, 0);//过期时间为1分钟
cookie3.expires = dt.add(ts);//设置过期时间
cookie3.values.add("key", "value");
cookie3.values.add("key", "value");
//cookie3.values.set("key", "value");//设置cookie某项的值
response.appendcookie(cookie3); //响应一个cookies
//注:如果使用response.cookies创建cookie就不用写system.web.httpcontext.current.response.cookies了。
}

 获取cookie

public void readcookie()
{
//方法一:
httpcookie cookies1 = request.cookies["cookiename"];
string values1 = cookies1.value;
//string values 1= cookies.values["key"];//获取多值
//方法二:
string values2 = request.cookies["cookiename"].value;
//string values2 = request.cookies["cookiename"].values["key"];//获取多值
//方法三:(获取多值)
string values3 = server.urldecode(request.cookies["cookiename"]["key"]);
//system.web.httpcontext.current.request.cookies["cookiename"];//同request.cookies
}

修改cookie

public void updatecookie()
{
//修改只需要重新给要修改的cookie赋值就行,这样旧的就会被覆盖掉。
//所以这里只写一种方法,更多请参考创建cookie
httpcookie cookie = request.cookies["cookiename"];
cookie.expires = datetime.now.adddays(1);//设置过期时间
cookie.value = "value";//设置值
response.cookies.add(cookie);//响应一个cookies
}

删除cookie

public void deletecookie()
{
//删除cookie只需修改的cookie的过期时间(expires)过去的时间即可
//所以这里只写一种方法,更多请参考创建cookie
httpcookie cookie = request.cookies["cookiename"];
cookie.expires = datetime.now.adddays(-1);//设置过期时间
response.cookies.add(cookie);//响应一个cookies
}

  •  注意:对cookie进行操作时应先判断cookie不为空
  • 注意:当cookie存中文出现乱码,则在存放时给中文编码,读取时解码即可,如cookie.setcookie("name", server.urlencode("value"),1)
  • 注意:只要不给cookie设置过期时间,cookie在浏览器关闭的时候自动失效