【问题标题】:How to clear cookie through WinINet function?如何通过 WinINet 功能清除 cookie?
【发布时间】:2011-09-16 13:27:42
【问题描述】:

使用WinINet InternetGetCookieInternetSetCookie 函数,在通过WinINet 发出网络请求的应用程序中获取和设置cookie 非常简单。

但是,到目前为止,我还没有找到清除 cookie 的方法。

使用空白数据(L""NULL)调用 InternetSetCookie 无济于事(无论是否指定 cookie 名称都已尝试)。

尝试了FindFirst/NextUrlCacheGroupDeleteUrlCacheGroup 以及FindFirst/NextUrlCacheEntryDeleteUrlCacheEntry 的组合。还是没有运气。

有什么想法吗?

【问题讨论】:

    标签: cookies wininet


    【解决方案1】:

    基,

    我遇到了同样的问题,我的一位同事刚刚帮我解决了这个问题。您需要致电:

    InternetSetOption(0, 42, NULL, 0);
    

    答案取自here

    这对我的应用程序起到了作用,我希望它也对你有用。

    编辑:
    函数调用中的“42”值代表“INTERNET_OPTION_END_BROWSER_SESSION”标志,它“从硬盘驱动器上的密码缓存中清除未使用的条目。此外重置同步模式为每会话一次时使用的缓存时间。此选项不需要缓冲区。这由 InternetSetOption 使用。 (http://msdn.microsoft.com/en-us/library/aa385328%28v=vs.85%29.aspx)

    【讨论】:

    • 自然是42。
    【解决方案2】:

    这是一篇相当老的帖子,但我想我会添加我的发现,因为我遇到了类似的问题 - 要清除 cookie,您需要将其到期日期设置为过去的日期。这也适用于会话 cookie:

    InternetSetCookie("http://someurl.com", "mycookie" "somevalue;expires=Mon, 01 Jan 0001 00:00:00 GMT");

    【讨论】:

      【解决方案3】:

      单击“Internet 属性”对话框(常规选项卡)上的“排除...”按钮。

      仅选中“Cookie 和站点数据”复选框。使用 API Monitor (http://www.rohitab.com/apimonitor) 监控“删除浏览历史”对话框

      使用提供的 Windows API 函数查看已完成的操作并执行相同的操作。我通过这种方式找到了解决方案

      【讨论】:

        猜你喜欢
        • 2012-06-10
        • 2012-04-22
        • 2021-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-23
        相关资源
        最近更新 更多