gpt4 book ai didi

asp.net - Cookie 在 asp.net 中不起作用

转载 作者:行者123 更新时间:2023-12-02 12:21:29 25 4
gpt4 key购买 nike

我有两个页面,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);
}

test2.aspx 有这个

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

无论我尝试多少次,cookie 的值都是 null。我尝试打开第 1 页,然后打开第 2 页,希望 cookie 能够工作,但它不起作用,我不知道为什么。

最佳答案

我认为您需要读取请求而不是响应。

MSDN建议

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

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

关于使用 SetCookie 的其他想法

有趣的是HttpResponse.SetCookie如您第一页上所使用的; MSDN 表示此方法不适合在您的代码中使用。

This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.

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

关于asp.net - Cookie 在 asp.net 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com