C#中如何保存cookie到本地

我对这个东西的概念不是很清楚就知道他能保存东西到本地我要怎么保存呢,就好比说我在文本框中输入了用户名,和密码我要怎么保存下来,下次登录又怎么取出cookie中的值呢?怎么... 我对这个东西的概念不是很清楚 就知道他能保存东西到本地
我要怎么保存呢,就好比说 我在文本框中输入了用户名,和密码
我要怎么保存下来,下次登录又怎么取出cookie中的值呢?
怎么将他保存硬盘,我下一次要用到的时候又如何从硬盘中找到我想要的cookie?
麻烦帮我写一个方法,关键的语句帮我打上注释。
分别是保存cookie值,和取出cookie值
展开
 我来答
srsym
推荐于2016-07-14 · 超过13用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:30.1万
展开全部

正好手上有保存密码的源码,发给你

//如果用户选择了保存密码,则将用户名和密码保存在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
点浩的路亚米级梦
2011-03-01 · 超过28用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:65.9万
展开全部
存:

//创建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"];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一骑当后
2015-07-04 · 知道合伙人数码行家
一骑当后
知道合伙人数码行家
采纳数:40298 获赞数:306448
网络、设备维护、电路、弱电检测。

向TA提问 私信TA
展开全部
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guoliuhuan
2011-03-01 · TA获得超过156个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:216万
展开全部
//创建一个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];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式