我有两个页面,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工作,但它不起作用,我不知道为什么.
我认为你需要阅读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
| 归档时间: |
|
| 查看次数: |
8130 次 |
| 最近记录: |