我在我的应用程序的一个页面(第3页)上设置了一个cookie Request.Cookies("TemplateName").value
。现在我可以从第3页导航到第4页和第2页并保留cookie的值。但是现在当我退出并再次登录它仍然具有该值时,如何在启动新实例时将cookie的值重置为空白?
我试过了:
Request.Cookies("TemplateName").Expires = Now
Request.Cookies("TemplateName").value = ""
在我的主页上,但Cookie仍保留第2页和第3页的值。
答案 0 :(得分:5)
您需要使用响应而不是请求
Response.Cookies["TemplateName"].Value = "";
Response.Cookies["TemplateName"].Expires = DateTime.Now;
编辑VB。
Dim subkeyName As String
subkeyName = "userName"
Dim aCookie As HttpCookie = Request.Cookies("userInfo")
aCookie.Values.Remove(subkeyName)
aCookie.Expires = DateTime.Now.AddDays(1)
Response.Cookies.Add(aCookie)
Response.Cookies("userName").Value = "patrick"
Response.Cookies("userName").Expires = DateTime.Now.AddDays(1)
这些示例就在MSDN site
之后的SideNote
人们通常会尝试使用
Request.Cookies.Remove("MyCookie");
只会从“请求集合”中删除cookie,如果要删除cookie,则需要将其过期。更多信息here
答案 1 :(得分:0)
这可能听起来很愚蠢。
但是你想尝试从其他任何地方设置cookie吗?如果有帮助,请搜索TemplateName的代码。
答案 2 :(得分:0)
我对.Net并不熟悉,但对于一般的网络应用程序,您需要确保在写出任何正文之前设置响应标题,否则可能无法发送。只需要仔细检查一下。