C#中的Cookie
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在浏览器关闭的时候自动失效
上一篇: 人胖也是有好处的吗!
下一篇: Flash新手鼠绘教程-熟悉鼠绘工具