2

我在删除经典 ASP 中的 cookie 时遇到问题。设置和检索 cookie 在多个域上运行良好,没有问题。不删除 cookie。
拒绝删除的 cookie 将超时并在原始超时时自行删除,但这不是一个选项。
我查看了文档、堆栈溢出、堆栈交换(Web 应用程序)(一些问题相似,并给了我一些答案,但不一样)、cookie 中心和 MSDN。
目前无法将页面更新到 ASP.NET。cookie 值和名称以十六进制表示,并带有前导“O”,以消除加密数据和脚本语言(ASP、VBScript、Jsvascript、SQL)可能出现的字符问题。
请注意,一些不同的尝试已被注释掉。

Sub Set4HrCookie(ByVal CookieName, ByVal CookieValue)
    Response.Cookies(CookieName).Expires = DateAdd("n", 240, Now())
    Response.Cookies(CookieName).Domain = ".mydomain.net"
    Response.Cookies(CookieName).Path = "/"
    Response.Cookies(CookieName) = CookieValue
    Response.Cookies(CookieName).Secure = FALSE
End Sub

Sub Set1DayCookie(ByVal CookieName, ByVal CookieValue)
    Response.Cookies(CookieName).Expires = Now() + 1
    Response.Cookies(CookieName).Domain = ".mydomain.net"
    Response.Cookies(CookieName).Path = "/"
    Response.Cookies(CookieName) = CookieValue
    Response.Cookies(CookieName).Secure = FALSE
End Sub

Sub KillThatCookie(ByVal CookieName)
    Response.Cookies(CookieName).Domain = ".mydomain.net"
    Response.Cookies(CookieName).Path = "/"
    Response.Cookies(CookieName).Expires = Now() ' Now() - 1 ' #01/01/1999#
    ' Response.Cookies(CookieName).Secure = FALSE
    Response.Cookies(CookieName) = ""
End Sub

拒绝删除的 cookie 示例:

O9DCCF20B15CA0F382184A96BAB
OFA86B660438C4863797E4485DE
mydomain.net/

以下是一些为我提供信息的 URL。
当您清除它们时,您必须分配 .domainname.com 域,否则它不会清除它们。
http://forums.asp.net/t/1399232.aspx/1
经典 ASP 中具有 DOMAIN 值的 Cookie
http://blurbly.net/5_5.htm

编辑:进一步的测试表明,因为在 cookie 上使用了“路径”,所以在“杀死”上需要“路径”。
编辑:这是 IIS-6 - 它似乎类似于 VB6 INI 文件的已知错误。当程序访问 INI 文件的速度过快时,系统无法跟上并发生 INI 文件损坏。

4

2 回答 2

2

终于我找到了答案。我们的网站同时使用 HTTPOnly cookie 和标准 cookie。问题是 IIS 无法处理。要么所有 cookie 都是 HTTPOnly,要么没有。其中一个是双向设置的,之后所有非 HTTPOnly cookie 都没有被删除。KillThatCookie 保持不变。一天的设置cookie变成:

Sub Set1DayCookie(ByVal CookieName, ByVal CookieValue)
Dim strGMTDateRFC22
    strGMTDateRFC22 = GetServerUTC("d", 1) ' 1 Day Cart Session Expiration
    Response.AddHeader "Set-Cookie", CookieName & "=" & CookieValue & "; expires=" & strGMTDateRFC22 & "; domain=.mydomain.net; path=/; HttpOnly"
End Sub

此外,带有下划线“-”、括号“()”、和号“&”的 Cookie 是有问题的。它们不一定会删除。我确定还有更多字符,但文档说这些是有效的。他们可能是有效的,但它们会导致问题。
编辑:似乎还有更多。多次超时也是一个问题。
编辑:部分问题是我们正在加密密钥,这使其区分大小写。

于 2012-07-02T20:48:40.423 回答
0

要删除 cookie,请执行以下操作:-

Response.Cookies(CookieName) = CookieValue 
Response.Cookies(CookieName).Expires = Date() - 1
于 2012-06-25T19:19:04.543 回答