8

这是我在 Login.aspx 中的代码

protected void LoginButton_Click(object sender, EventArgs e)
{
    HttpCookie loginCookie1 = new HttpCookie("loginCookie");
    Response.Cookies["loginCookie1"].Value = LoginUser.UserName;
    Response.Cookies.Add(loginCookie1);
}

这是在 shop.aspx

protected void btnAddCart_Click(object sender, EventArgs e)
{ 
     HttpCookie myCookie = new HttpCookie(dvProduct.DataKey.Value.ToString());
     myCookie["Category"] = dvProduct.DataKey["Category"].ToString();
     myCookie["Product"] = dvProduct.DataKey["Product"].ToString();
     myCookie["Quantity"] = txtQuantity.Text;
     myCookie["Price"] = dvProduct.DataKey["Price"].ToString();
     myCookie.Expires = DateTime.Now.AddDays(1d);
     Response.Cookies.Add(myCookie);
     Response.Redirect("ViewCart.aspx", true);
}

我想从 cookie 中读取用户名的值(在 login.aspx 中设置的值

4

3 回答 3

15

您基本上需要请求 cookie 在您所在的页面上并不重要是关于 cookie 的解释

http://msdn.microsoft.com/en-us/library/ms178194.aspx

HttpCookie aCookie = Request.Cookies["loginCookie"];
string username = Server.HtmlEncode(aCookie.Value);
于 2012-04-14T04:45:50.603 回答
5

您设置 loginCookie 的代码看起来很奇怪:

HttpCookie loginCookie1 = new HttpCookie("loginCookie"); 
Response.Cookies["loginCookie1"].Value = LoginUser.UserName; // <--- strange!!!!
Response.Cookies.Add(loginCookie1); 

很可能您的 cookie 没有发送到浏览器 - 请使用Fiddler等 HTTP 调试器进行检查。

于 2012-04-14T04:54:15.403 回答
1

这应该这样做:

var userName = Request.Cookies["loginCookie"].Value;
于 2012-04-14T04:40:50.730 回答