在实习中做得一个购物网站项目 ,我用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 不见了
发现完成购物后清空购物车会把 用户登入的信息也清空掉, 具体不知是什么原因.特来求教!
我觉得是这里有问题,请大家来帮我看看:
用户信息保存的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 不见了
解决方案 »
- 数据库同步问题?考虑到外网 要和内网的数据 同步的问题,有没有哪个做过的
- 唯独一个页面提示服务器应用程序不可用,其他页面都可以跑起来,怎么原因?来者散分
- 你好,请问你觉得生产静态页面一点意义都没有吗?
- 关于Asp.net 在Web.config自定义错误的问题?
- web.config问题
- 急!急!求助!关于“未定义类型“ADOConnection””!!
- 请问ASP.NET联接DB2的connstring怎么写?(不好意思,分完了)
- 关于shtml的问题
- asp.net数据库连接access?
- 关于ram、rm文件:
- 郁闷的问题大家来看看(winform读取配置文件)
- 全选后,点下一页,在点上一页,能否保存状态?
{
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 删除cookieHttpCookie 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);
习惯购物车用session
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等保存