如何通过WinINet函数清除cookie?

时间:2011-06-16 16:45:19

标签: cookies wininet

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

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

使用空白数据(InternetSetCookieL"")调用NULL无效(无论是否指定了Cookie名称,均尝试使用)。

尝试了FindFirst/NextUrlCacheGroupDeleteUrlCacheGroup以及FindFirst/NextUrlCacheEntryDeleteUrlCacheEntry组合。仍然没有运气。

有什么想法吗?

3 个答案:

答案 0 :(得分:7)

箕,

我遇到了同样的问题,我的一位同事帮助我解决了这个问题。你需要打电话:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

Internet properties / General tab

仅选中“ Cookies和站点数据”复选框。使用API​​监视器(http://www.rohitab.com/apimonitor)来监视“删除浏览历史记录”对话框

Delete browser History

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