C#中如何保存cookie到本地
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中如何保存cookie到本地相关的知识,希望对你有一定的参考价值。
我对这个东西的概念不是很清楚 就知道他能保存东西到本地
我要怎么保存呢,就好比说 我在文本框中输入了用户名,和密码
我要怎么保存下来,下次登录又怎么取出cookie中的值呢?
怎么将他保存硬盘,我下一次要用到的时候又如何从硬盘中找到我想要的cookie?
麻烦帮我写一个方法,关键的语句帮我打上注释。
分别是保存cookie值,和取出cookie值
正好手上有保存密码的源码,发给你
//如果用户选择了保存密码,则将用户名和密码保存在cookie中
protected void IsSavePwd(String uName, String uPwd)
if (cb_savePwd.Checked) // 用户是否选择保存用户
List<String> strs = new List<string>();
List<String> newStrs = new List<string>();
strs.Add(uName);
strs.Add(uPwd);
newStrs = this.Encrypt(strs); //这里对用户名和密码加密
HttpCookie cookie = new HttpCookie(newStrs[0], newStrs[1]); //实例化HttpCookie类并添加值
cookie.Expires = DateTime.Now.AddDays(7); //设置保存时间
Response.Cookies.Add(cookie);
//根据用户名获取cookie中对应的密码
protected String GetPwd(String nName)
List<String> strs = new List<string>();
strs.Add(nName); //参数为用户名
List<String> strsPwd = new List<string>();
strsPwd.Add(Supertea.Rule.Get_Cookie(this.Encrypt(strs)[0])); //这里解密
//定义字符串变量来保存cookie文件中用户名对应的密码
return this.Decrypt(strsPwd)[0];
//当用户名的textbox值改变时,
protected void txt_username_TextChanged(object sender, EventArgs e)
txt_password.Attributes.Add("value", this.GetPwd(txt_username.Text));
实现的功能:
根据不同的用户名获取存储在cookies中的密码
追问你这个txt是在哪里打开的? 我怎么找不到?
追答XP系统下
C:\Documents and Settings\Administrator\Cookies
if (cb_savePwd.Checked) 这个参数是什么意思,我刚接触这东西,不懂
追答cb_savePwd是一个复选框
如果用户勾选了保存用户的话
才执行保存用户名密码到cookies的方法
如图,就是那个保存密码前面的复选框
//创建Cookie
HttpCookie Cookies = new HttpCookie("UserInfo");
Cookies.Values["UserName"] = "张三";
Cookies.Values["UserPwd"] = "Zhangsan";
Cookies.Expires = DateTime.Now.AddHours(1);//设置Cookies的有效时间, 这里设置的是一个小时
Response.Cookies.Add(Cookies);//添加到 Cookie 集合
取:
读取Cookie
用户名: Request.Cookies["UserInfo"]["UserName"];
密 码: Request.Cookies["UserInfo"]["UserPwd"]; 参考技术B C#中可以用一个方法把CookieContainer所有的Cookie读出来,
此方法的代码如下:
public static List<Cookie> GetAllCookies(CookieContainer cc)
List<Cookie> lstCookies = new List<Cookie>();
Hashtable table = (Hashtable)cc.GetType().InvokeMember("m_domainTable",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField |
System.Reflection.BindingFlags.Instance, null, cc, new object[] );
foreach (object pathList in table.Values)
SortedList lstCookieCol = (SortedList)pathList.GetType().InvokeMember("m_list",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField
| System.Reflection.BindingFlags.Instance, null, pathList, new object[] );
foreach (CookieCollection colCookies in lstCookieCol.Values)
foreach (Cookie c in colCookies) lstCookies.Add(c);
return lstCookies;
然后,再保存到文件:
StringBuilder sbc = new StringBuilder();
List<Cookie> cooklist = Code.ProgTool.GetAllCookies(CookieContainer);
foreach (Cookie cookie in cooklist)
sbc.AppendFormat("0;1;2;3;4;5\r\n",
cookie.Domain,cookie.Name, cookie.Path, cookie.Port,
cookie.Secure.ToString(), cookie.Value);
FileStream fs = File.Create("d:\\chinarencookies.txt");
fs.Close();
File.WriteAllText("d:\\chinarencookies.txt", sbc.ToString(), System.Text.Encoding.Default);
读出所有Cookie
string[] cookies = File.ReadAllText("d:\\chinarencookies.txt", System.Text.Encoding.Default).Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
foreach (string c in cookies)
string[] cc = c.Split(";".ToCharArray());
Cookie ck = new Cookie(); ;
ck.Discard =false;
ck.Domain = cc[0];
ck.Expired =true;
ck.HttpOnly = true;
ck.Name = cc[1];
ck.Path = cc[2];
ck.Port = cc[3];
ck.Secure = bool.Parse(cc[4]);
ck.Value = cc[5];
CookieContainer.Add(ck);
参考技术C //创建一个Cookie对象,"ck1"为Cookie的名称
HttpCookie cookie = new HttpCookie("ck1");
//设置要保存到Cookie的值,用户名|密码
cookie.Value = "admin|pwd";
//设置Cookie的生命周期
cookie.Expires = DateTime.Now.AddDays(1);
//写入Cookie到客户端
Response.Cookies.Add(cookie);
//根据Cookie名称取得Cookie的值
String cookieValue = Request.Cookies["ck1"].Value;
//解析Cookie的Value,从而得到用户名和密码
String[] strs = cookieValue.Split('|');
//用户名
String userName = strs[0];
//密码
String password = strs[1];
Laya怎么保存用户信息到本地(相当于cookie)
laya.net.LocalStorage.setItem("name","guifa"); //存储用户信息到本地上,相当于cookie laya.net.LocalStorage.setItem("name","guifa2014"); //修改本地用户信息 var name =laya.net.LocalStorage.getItem("name"); //获取本地用户信息
不需要new,直接操作localstorage类
以上是关于C#中如何保存cookie到本地的主要内容,如果未能解决你的问题,请参考以下文章