C# 如何在asp.net网站的一个页面中设置cookie值并从另一个页面读取它

C# 如何在asp.net网站的一个页面中设置cookie值并从另一个页面读取它,c#,asp.net,cookies,C#,Asp.net,Cookies,这是我在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); }

这是我在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中设置的值),这应该可以:

var userName = Request.Cookies["loginCookie"].Value;

您基本上需要请求cookie,这与您在哪个页面上并不重要 下面是关于cookies的解释


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

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

Response.Cookies[“loginCookie1”]。Value=logiuser.UserName;//小更正-->我想从cookie中读取UserName的值(在login.aspx中设置的值)请注意,在shop.aspx页面中,您不应将用户名存储在cookie中;这是一个安全漏洞。很容易从客户端更改cookie的值,然后他们只需猜测管理员的姓名即可完全访问您的系统。相反,请将用户与guid关联,并将guid存储在cook中例如,在回程中,查找服务器上用guid存储的信息。>我通过上述代码得到此错误
{“对象引用未设置为对象的实例”。}这是因为您无法获取空对象的值。>我正在从asp.net的登录控件中检索用户名。LoginUser是登录控件的ID。在这里,我检查了它是否正在检索用户名,它检索得很好。我只是在读取它时遇到了问题。请通过“Login.aspx”将实际发送到浏览器的cookie标头发布出来从“shop.aspx”页面的浏览器返回。>您好,我得到了解决方案。下面的代码解决了问题。HttpCookie aCookie=Request.Cookies[“loginCookie1”];string username=Server.HtmlEncode(aCookie.Value)>谢谢。很高兴听到。我想这也是一种方式……另外,在登录页面上修复奇怪的代码,将cookie设置为您要表达的名称可能更合适。@techblog:记住对您认为好的答案进行投票。这给了我们一种温暖的模糊感觉:P..如果这个答案是您问题的答案,那么就接受它吧..我喜欢这个+1.
HttpCookie loginCookie1 = new HttpCookie("loginCookie"); 
Response.Cookies["loginCookie1"].Value = LoginUser.UserName; // <--- strange!!!!
Response.Cookies.Add(loginCookie1);