我工作的网站由几个项目组成(用几种语言编写).现在,我们必须在查询字符串和会话变量中使用一些笨拙的代码,以便在人们从一个项目到另一个项目时保持登录状态.由于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提供易于理解的入门,我们将不胜感激.
我有一个使用C#的网页,我希望用户能够点击链接(或链接按钮或按钮,我不挑剔)并显示"另存为"对话框窗口,以便他们可以下载文件.文件本身位于另一台服务器上,因此我必须使用绝对路径(i:\ division\department\publicfiles\filename.pot).有谁知道这是怎么做到的吗?
我在这里查了一下这个问题,有人建议使用webClient.DownloadFile.除非我不能使用它,因为它要求您已经知道用户希望将文件下载到其计算机上的位置.基本上我正在寻找的是当您右键单击链接并选择"另存为"时会发生什么,但是当您左键单击链接时就会完成.
谢谢
当用户注销时,我正在尝试使用 C# 删除 cookie。此处列出的代码建议:从浏览器中删除 cookie不起作用。我绝望地将其中的几个放在一起,但它们都不起作用。
if (Request.Cookies["loginidcookie"] != null)
{
HttpCookie myCookie = new HttpCookie("loginidcookie");
myCookie.Value = String.Empty;
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
Response.Cookies.Remove("loginidcookie");
}
Response.Redirect("logout.aspx");
Run Code Online (Sandbox Code Playgroud)
因此,我不仅用空字符串覆盖了 cookie 的值,而且将其设置为昨天过期并将其从 cookie 列表中删除。然而,当我运行这段代码然后点击后退按钮并重新加载时,cookie 仍然以其原始值存在。那么我该如何摆脱它呢?
谢谢