【问题标题】:WinInet and SessionCookiesWinInet 和 SessionCookies
【发布时间】:2023-03-15 07:32:01
【问题描述】:

大家好,晚上好。

我的应用程序使用 InternetSetCookie 创建其工作所需的(会话)cookie。但是我想删除以 ex 命名的 cookie。每次请求后的“badcookie”

InternetSetCookie("http://www.domain.com", "badcookie", ""); 和 InternetSetCookie("http://www.domain.com", NULL, "badcookie=")

但是...在最好的情况下,它会发送没有任何值的 cookie,仅此而已。

我的问题是如何完全删除这个 cookie? (不,我不想让它们永久化并调用 cleanup() 10 次,也许我会为每个请求创建线程,但如果我这样做会很糟糕)

【问题讨论】:

  • 我不知道 WinINET API,但只是让 cookie 过期。我会将其添加为答案,但我不知道执行此操作的语法。这就是您在 ASP.NET 中的做法。将过期日期设置为过去的日期,cookie 将在客户端被删除。
  • ^ 这适用于我的应用程序创建的 cookie,但我只是通过 IE 删除了同名的 cookie,因此我发送了两个“badcookie”,这样只能删除一个。我建议将纪元时间设置为到期。然而,这是一个适当的骗局,所以也许还有其他解决方案,我将把它打开:)。谢谢大卫,别担心我会以你的名义添加解决方案;)但也许还有其他人!
  • 很高兴能为您提供帮助。我把我的评论作为答案,以防它在路上有所帮助。祝你好运!

标签: cookies session-cookies wininet


【解决方案1】:

InternetSetCookie("http://domain.com", NULL, "badcookie=bye; expires = Sat,01-Jan-1970 00:00:00 GMT");

这删除了包含其他一些 cookie 的完整 txt 文件。在我使用 www.domain.com 之前,我发现这是个问题……现在我面临与您发布的链接相同的问题(丢失更多 cookie),但我的问题现在得到了解答。

PS 这也适用于会话 cookie。

【讨论】:

    【解决方案2】:

    我的答案不是 100% 完整,但也许这是一个开始。我建议将 cookie 的过期时间设置为过去,因为这将强制客户端清除 cookie。我不熟悉 WinINET 语法,所以也许有人有更好的答案。我更像是一个 ASP.NET 人 - 但这个 article 似乎建议如何使 cookie 过期。

    根据 gaor 对我最初评论的回应,听起来还有一些工作要做才能完全解决这个问题。但希望这会有所帮助,并让有人指出正确的方向。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多