Cookie在asp.net中不起作用

Sar*_*nyu 3 asp.net cookies

我有两个页面,test1.aspx和test2.aspx

test1.aspx有这个

protected void Page_Load(object sender, EventArgs e)
{
  HttpCookie cookie = new HttpCookie("test", "test");
  cookie.Expires = DateTime.Now.AddDays(1);
  Response.SetCookie(cookie);
}
Run Code Online (Sandbox Code Playgroud)

test2.aspx有这个

protected void Page_Load(object sender, EventArgs e)
{
  Response.Write(Response.Cookies["test"].Value);
}
Run Code Online (Sandbox Code Playgroud)

无论我尝试了多少次,cookie的值都是null.我试图打开page1然后第2页,期望一个cookie工作,但它不起作用,我不知道为什么.

Chr*_*ray 8

我认为你需要阅读Request而不是回应.

作为MSDN的建议

protected void Page_Load(object sender, EventArgs e) 
{
    Response.Write(Request.Cookies["test"].Value);
}
Run Code Online (Sandbox Code Playgroud)

在Web应用程序中,请求来自客户端(浏览器),响应从服务器发送.从浏览器验证cookie或cookie数据时,您应该使用该Request.Cookies集合.当您构建要发送到浏览器的cookie时,您需要将它们添加到Response.Cookies集合中.

关于使用SetCookie的其他想法

有趣的是你在第一页上使用的HttpResponse.SetCookie ; MSDN表示此方法不适用于您的代码.

此API支持.NET Framework基础结构,不能直接在您的代码中使用.

即使在此页面上找到的示例代码也使用该Response.Cookies.Add(MyCookie)方法,但不会调用SetCookie