新手求助!关于Cookie的问题!

yuanx0211 2010-05-27 06:24:40
在实习中做得一个购物网站项目 ,我用cookie保存用户登录的用户信息和购物车中信息,但是2个cookie分别用2种方法生成,
发现完成购物后清空购物车会把 用户登入的信息也清空掉, 具体不知是什么原因.特来求教!

我觉得是这里有问题,请大家来帮我看看:
用户信息保存的Cookie:
Response.Cookies["UserLogin"]["uname"] = this.username.Value.Trim();
Response.Cookies["UserLogin"]["uid"] = tuser.UserId.ToString();
Response.Cookies["UserLogin"].Expires = DateTime.Now.AddHours(1);
存入用户名和数据库取出的用户编号;

购物车保存的信息
private void UpdateCarInfo(string newCarInfoString)
{
cookieCar = new HttpCookie(cookie_car, newCarInfoString);
cookieCar.Expires = DateTime.Now.AddHours(1);

HttpContext.Current.Response.Cookies.Remove(cookie_car);
HttpContext.Current.Response.Cookies.Add(cookieCar);
}
保存 购物车传来的 用户编号和数量

清空购物车类
public void Clear()
{

UpdateCarInfo("");
}

不知为什么清空购物车后 连用户登入的信息也清除了,确切的说是 UserLogin 还在但他的2个子值uname和uid 不见了

...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-05-27
  • 打赏
  • 举报
回复
cookie操作
System.Web.HttpCookie newcookie = new HttpCookie("user");
newcookie.Values["username"] = "";
newcookie.Values["password"] = "";
newcookie.Expires = DateTime.Now.AddDays(15);
Response.AppendCookie(newcookie);


System.Web.HttpCookie cookie = Request.Cookies["user"];
if (cookie != null)
{
cookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Set(cookie);
}

HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename];
if (cookie != null)
{
cookie.Values.Clear();
SetUserCookieExpireTime(cookiename, -1);
cookie.Domain = _domain;
System.Web.HttpContext.Current.Response.Cookies.Set(cookie);
}
public static void SetUserCookieExpireTime(string key, int days)
{
System.Web.HttpContext.Current.Response.Cookies[key].Domain = _domain;
System.Web.HttpContext.Current.Response.Cookies[key].Path = _cookiepath;
System.Web.HttpContext.Current.Response.Cookies[key].Expires = DateTime.Now.AddDays(days);
}
购物车使用hashtable等保存
足球中国 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luqc1985 的回复:]
private void UpdateCarInfo(string newCarInfoString)
{
cookieCar = new HttpCookie(cookie_car, newCarInfoString);
cookieCar.Expires = DateTime.Now.AddHours(1);

HttpContext.Current.Respo……
[/Quote]不错。
子夜__ 2010-05-27
  • 打赏
  • 举报
回复
Cookie都有name和value
习惯购物车用session
happyboyxq 2010-05-27
  • 打赏
  • 举报
回复
路过~~~~~~~~~~
harderLi 2010-05-27
  • 打赏
  • 举报
回复
楼上很详细
别样苍茫 2010-05-27
  • 打赏
  • 举报
回复
private void UpdateCarInfo(string newCarInfoString)
{
cookieCar = new HttpCookie(cookie_car, newCarInfoString);
cookieCar.Expires = DateTime.Now.AddHours(1);

HttpContext.Current.Response.Cookies.Remove(cookie_car);
HttpContext.Current.Response.Cookies.Add(cookieCar);
}



每个COOK应该对应不同的name 和 value

cookieName.Expires = DateTime.Now.AddHours(-24); 可以用这种方式清除

详细可以参考示例:

asp.net 删除cookie

HttpCookie cookie1 = Request.Cookies["PPUser"];
cookie1.Expires = DateTime.Today.AddDays(-10);
cookie1.Domain = "huo7.com";
Response.Cookies.Add(cookie1);

asp.net 添加cookie

HttpCookie cookie = new HttpCookie("PPUser");
cookie.Values.Add("UserName",HttpUtility.UrlEncode(userName));
cookie.Values.Add("Pwd",HttpUtility.UrlEncode(pwd));
cookie.Expires = DateTime.Now.AddMinutes(expires);
cookie.Path = "/";
cookie.Domain = "huo7.com";
Response.AppendCookie(cookie);



62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧