cookies - 拒绝删除的cookie

标签 cookies asp-classic

我在经典 ASP 中删除 cookie 时遇到问题。设置和检索 cookie 在多个域上运行得非常好,没有任何问题。删除 cookie 则不然。
拒绝删除的 cookie 将超时并在原始超时时自行删除,但这不是一个选项。
我浏览了文档、堆栈溢出、Stack Exchange(Web 应用程序)(有些问题很相似,并给了我一些答案,但不一样)、cookiecentral 和 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 上使用了“Path”,因此“Kill”上需要“Path”。
编辑:这是 IIS-6 - 它似乎与 VB6 INI 文件的已知错误类似。当程序访问 INI 文件的速度过快时,系统将无法跟上,从而发生 INI 文件损坏。

最佳答案

终于我找到了答案。我们的网站同时使用 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 是有问题的。它们不一定会删除。我确信还有更多字符,但文档说这些是有效。它们可能是有效的,但它们会引起问题。
编辑:似乎还有更多内容。多次超时也是一个问题。
编辑:部分问题是我们正在加密 key ,使其区分大小写。

关于cookies - 拒绝删除的cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11195721/

相关文章:

google-chrome - SameSite cookie、框架、子域和重定向

html - 经典的 asp 密码验证 sql

date - 经典 Asp 日期

ms-access - 删除不同表中的相关记录

asp-classic - 经典 ASP 的多语言支持

javascript - 使用 jQuery 使用数组在一个 cookie 中设置/检索多个键/值对

java - 使用 Intellij 生成的代码、客户端证书和 session cookie 的 SOAP Webserice。独立工作。不适用于 glassfish 3.1.2.2

oop - 将一个对象设置为空是否也会将其子对象设置为空?

python - 如何在 Google App Engine 服务上运行的应用程序之间共享登录 cookie?

cookies - Wicket:阻止 cookie 使用,直至用户确认