C#创建cookie读写cookie
⼀、创建cookie
    HttpCookie cookie = new HttpCookie("UserInfo");//创建多值cookie
cookie.Expires = DateTime.Now.AddDays(1);//设置cookie的失效时间为⼀天,如果不设置失效时间,cookie会在浏览器关闭即消失,不会保存本地⽂件
cookie.Values["LoginName"] = txtusername.Text;
      cookie.Values["Pwd"] = txtusername.Text;
    这样创建了⼀个key为UserInfo的cookie,具有LoginName和Pwd两个属性。
    创建为cookie不要忘记添加cookie,否则是取不出来的
    Response.Cookies.Add(cookie);
注:如果使⽤response.Cookies创建cookie就不⽤写上⼀句代码了。
⼆、取cookie
    HttpCookie cookies = Request.Cookies["UserInfo"];//取cookie
    txtusername.Text = cookies.Values["LoginName"];//去cookie的LoginName属性赋值给帐号⽂本框
    txtpass.Attributes.Add("value",cookies.Values["Pwd"]);//密码框不能直接赋值,使⽤添加属性可以赋值
cookie属性:
name字段:为⼀个cookie的名称。session如何设置和读取
value字段:为⼀个cookie的值。
domain字段:为可以访问此cookie的域名。
path字段:为可以访问此cookie的页⾯路径。⽐如domain是abc,path是/test,那么只有/test路径下的页⾯可以读取此cookie。expires 字段:为此cookie超时时间。若设置其值为⼀个时间,那么当到达此时间后,此cookie失效。不设置的话默认值是Session,意思是cookie会和session⼀起失效。当浏览器关闭(不是浏览器标签页,⽽是整个浏览器) 后,此cookie失效。
Size字段:此cookie⼤⼩。
http字段:cookie的httponly属性。若此属性为true,则只有在http请求头中会带有此cookie的信息,⽽不能通过kie来访问此cookie。
secure字段:设置是否只能通过https来传递此条cookie
在这⾥只写了简单的Cookie操作
设置Cookie
public void AddCookie()
{
//⽅法⼀:
HttpCookie Cookie1 = new HttpCookie("CookieName");
Cookie1.Expires = DateTime.Now.AddDays(1);//设置过期时间
Cookie1.Values["key1"] = "Value1";
Cookie1.Values["key2"] = "Value2";
Response.Cookies.Add(Cookie1);//响应⼀个Cookies
//⽅法⼆:
Response.Cookies["CookieName"].Values["Key1"] = "Value1";
Response.Cookies["CookieName"].Values["Key2"] = "Value2";//存多值
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("Key1", "Value1");
cookie3.Values.Add("Key2", "Value2");
Response.AppendCookie(cookie3); //响应⼀个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在浏览器关闭的时候⾃动失效

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。