Alv*_*ant 7 c# asp.net cookies
我工作的网站由几个项目组成(用几种语言编写).现在,我们必须在查询字符串和会话变量中使用一些笨拙的代码,以便在人们从一个项目到另一个项目时保持登录状态.由于cookie是特定于域的,我们试图转换为它们,因为它们可以使用一种语言在一个项目中设置,但可以使用不同的语言由不同的项目(在同一域中)访问.
但是,我在更改cookie的值并删除它时遇到问题.或者更具体地说,我无法对饼干进行任何更改.
例如,在我的注销代码中:
if (Request.Cookies["thisuserlogin"] != null)
{
HttpCookie myCookie = new HttpCookie("thisuserlogin");
myCookie.Value = String.Empty;
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
Response.Cookies.Set(myCookie);
litTest.Text = myCookie.Expires.ToString() + "<br />" + Request.Cookies["thisuserlogin"].Expires.ToString();
}
Run Code Online (Sandbox Code Playgroud)
我结束了昨天的一行,下一行是1/1/0001 12:00:00,即使他们应该是相同的cookie.那么为什么即使设置了cookie,它的价值也没有改变?有没有办法强制用户的计算机更新cookie的值,包括删除?
非常感谢你.PS您可以提供任何URL,以便为cookie提供易于理解的入门,我们将不胜感激.
您应该在客户端使用Fiddler这样的工具来捕获所有来回的数据。这将帮助您了解您的 cookie 应该设置为过去的日期(并且在下一个请求中也会丢失)。
至于你的文本框输出,你列出了你创建的 cookie 的过期时间和请求cookie的过期时间,而请求 cookie 没有过期时间。如果您要查看响应 cookie,您应该会看到正在设置的日期。此外,调用Response.Cookies.Set是不必要的。Response.Cookies.Add应该就是你所需要的。
| 归档时间: |
|
| 查看次数: |
2758 次 |
| 最近记录: |