public static void WriteCookies(string key, string value)
{
if (value != null)
value = HttpUtility.UrlEncode(value, Encoding.Default);
HttpCookie cookie1 = HttpContext.Current.Request.Cookies[_cookie_name];
if (cookie1 == null)
{
cookie1 = new HttpCookie(_cookie_name);
cookie1.Values.Add(key, value);
cookie1.Expires = DateTime.Now.AddYears(1);
cookie1.Domain = Function.getModule().CookieDomain;
HttpContext.Current.Response.Cookies.Add(cookie1);
return;
}
cookie1.Values[key] = value;
cookie1.Expires = DateTime.Now.AddYears(1);
cookie1.Domain = Function.getModule().CookieDomain;
HttpContext.Current.Response.Cookies.Set(cookie1);
}
用下面的代码调用这个方法时
ttt.WriteCookies("Name", _txt_username.Text.Trim());
ttt.WriteCookies("Url", _homepage);
只更新了url,却没有更新Name,这是为什么?Name这个键在Cookie中是存在的
{
if (value != null)
value = HttpUtility.UrlEncode(value, Encoding.Default);
HttpCookie cookie1 = HttpContext.Current.Request.Cookies[_cookie_name];
if (cookie1 == null)
{
cookie1 = new HttpCookie(_cookie_name);
cookie1.Values.Add(key, value);
cookie1.Expires = DateTime.Now.AddYears(1);
cookie1.Domain = Function.getModule().CookieDomain;
HttpContext.Current.Response.Cookies.Add(cookie1);
return;
}
cookie1.Values[key] = value;
cookie1.Expires = DateTime.Now.AddYears(1);
cookie1.Domain = Function.getModule().CookieDomain;
HttpContext.Current.Response.Cookies.Set(cookie1);
}
用下面的代码调用这个方法时
ttt.WriteCookies("Name", _txt_username.Text.Trim());
ttt.WriteCookies("Url", _homepage);
只更新了url,却没有更新Name,这是为什么?Name这个键在Cookie中是存在的
比如我现在cookie中的Name为123
url为http://www.csdn.net
在修改时
ttt.WriteCookies("Name", "abcdefg");
ttt.WriteCookies("Url", "asaa");
查看cookie时,name没有改,而url 改了
百思不得其解啊
单独写一个没问题。两个同时写,第二个的更改会盖掉第一个。因为你的coolkie是从request的cookie中取的,第二次修改也是从request中取的。
所以第一次的修改被跳过了。
把Request的cookie也改掉,好了睡觉。