返回null的Asp.NET Cookie
我正在尝试保存一个cookie,当一个按钮被点击时,就像这样返回null的Asp.NET Cookie,asp.net,cookies,Asp.net,Cookies,我正在尝试保存一个cookie,当一个按钮被点击时,就像这样 protected void btn_login_Click(object sender, EventArgs e) { HttpCookie cookie = new HttpCookie("test"); cookie["work"] = "now"; cookie.Expires = DateTime.Now + new TimeSpan(1, 0, 0, 0); cookie.Domain = ".co
protected void btn_login_Click(object sender, EventArgs e)
{
HttpCookie cookie = new HttpCookie("test");
cookie["work"] = "now";
cookie.Expires = DateTime.Now + new TimeSpan(1, 0, 0, 0);
cookie.Domain = ".cookie.com";
Response.Cookies.Add(cookie);
}
然后在加载页面上,我正在阅读cookie
protected void Page_Load(object sender, EventArgs e)
{
string a = Response.Cookies["test"]["work"];
}
但它总是回来。我在localhost下运行这个,我读到Cookie不会保存在localhost下,所以我编辑了我的主机文件,说
127.0.0.1 test.cookie.com
当我使用Fiddler查看页面标题上的内容时。看起来像这样
测试/工作=现在
试验=
因此,我可以看到它正在被设置,但由于某种原因,当我在中读取它时,它返回空值。在加载页面上,将其从
响应.Cookies
更改为请求.Cookies
响应对象用于将数据发送回。请求对象具有传递给您的数据
例如:
String a = Request.Cookies["test"]["work"];
注意,如果cookie不存在,那么这将导致空引用异常
通常情况下,您应该执行以下操作:
protected void Page_Load(object sender, EventArgs e) {
HttpCookie cookie = Request.Cookies["test"];
String a = String.Empty;
if (cookie != null) {
a = cookie["work"];
}
}
试试这个
Response.Cookies["work"].Value = "Value1"
有关更多信息,请参阅
在页面上加载以读取cookie,然后重试
string value = Request.Cookies["work"].Value
您是否正在web浏览器中访问
test.cookie.com
?还是本地主机?@Rickyman35-这是一个有效的答案。普拉尼思不应该被否决。这太明显了,我简直不敢相信我竟然没有注意到我在用回应来读饼干。有时,只是需要其他人看一下,才能看到这些容易犯的错误。谢谢你的帮助。