在VS2008调试时cookie可正常读写,但发布后为什么cookie只写却读不出?

馒头隔夜 2009-03-02 12:35:43
protected void Button1_Click(object sender, EventArgs e)
{
if (Request.Cookies["user"] != null) //Request.Cookies["车轮子"]
{
TextBox1.Text = Request.Cookies["user"].Values["id"].ToString();
}
}
protected void Button2_Click(object sender, EventArgs e)
{
HttpCookie myCookie = new HttpCookie("user");
myCookie.Values["id"] = TextBox2.Text;
myCookie.Expires = DateTime.Now.AddHours(12); //不设这个找不到cookies文件
Response.Cookies.Add(myCookie);
}
测试程序如上,我发现cookie写操作正常能在Temporary Internet Files文件夹中看到写的内容。但当读时却读不出内容。
但把Button2_Click()的程序放在Page_Load()中Button1_Click()又可以读出cookie内容。
我指的是发布后在本机IE操作时出现的问题。在VS2008环境中调试一切正常。
什么好象页面重载了就读不出以前的值一样?
...全文
183 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wfyfngu 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kenhit 的回复:]
但这程序我都是放在同一页面啊,不存在路径问题吧
[/Quote]

有关系
一般情况下,浏览器认为网站的目录是 /
如果你的网站放在虚拟目录下,比如 /VirtualPath/
,那么,asp.net生成的cookie的path就很可能是 /VirtualPath/
而浏览器认为 / 才是该站点的目录。
可是使用Firefox查看生成的Cookie的详细信息,这样便于调试。
frankie_24 2009-03-03
  • 打赏
  • 举报
回复
Cookies 有作用域的问题
你可以Google一下,有详细的说明!
馒头隔夜 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wfyfngu 的回复:]
引用 2 楼 kenhit 的回复:
但这程序我都是放在同一页面啊,不存在路径问题吧


有关系
一般情况下,浏览器认为网站的目录是 /
如果你的网站放在虚拟目录下,比如 /VirtualPath/
,那么,asp.net生成的cookie的path就很可能是 /VirtualPath/
而浏览器认为 / 才是该站点的目录。
可是使用Firefox查看生成的Cookie的详细信息,这样便于调试。
[/Quote]
听你这样说是有点道理,但还不知道解决办法啊
馒头隔夜 2009-03-02
  • 打赏
  • 举报
回复
但这程序我都是放在同一页面啊,不存在路径问题吧
wfyfngu 2009-03-02
  • 打赏
  • 举报
回复
注意这个属性:
HttpCookie.Path

为安全起见,浏览器是不会跨域去读取Cookie的
馒头隔夜 2009-03-02
  • 打赏
  • 举报
回复
我是选装VS2008再装IIS5的,但后来我又重新注册了一次asp.net2.0了。问题一样!

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧