如何以编程方式枚举和删除Edge浏览器的Cookie?
它们似乎不属于临时互联网文件中的IE Cookie,因此似乎不会被FindFirstUrlCacheEntry
/ FindNextUrlCacheEntry
API调用返回。
我可以在
中看到cookie文件C:\Users\...\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!001\MicrosoftEdge\Cookies
C:\Users\...\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!002\MicrosoftEdge\Cookies
C:\Users\...\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\Cookies
三个目录有什么区别?如何访问它们并以编程方式删除单个cookie?
答案 0 :(得分:6)
这不是一个完美的答案,而是善良的完美敌人等。
似乎Edge仍然至少使用前两个位置。我在最后一个中没有看到任何最近的cookie。然而,也许这只是巧合。
我已经尝试运行多个窗口和标签,以查看不同的内容进程是否使用了不同的文件夹,但我也无法在该部门中找到很多内容。
我可以告诉您的是这些文件的格式:它们是"*\n"
个分隔的Cookie集合。每个cookie都有许多字段,"\n"
- 分隔。
编辑(2015/12/16):我再次偶然发现了我自己的答案,我需要注意的是,某些Cookie字段值本身可以"*"
结尾,在这种情况下搜索{{} 1}}分隔符会认为cookie提前完成。不,这些值不会被转义(这是有道理的......)。所以你最好的选择就是计算线数,这是不幸的。这已在this patch for Firefox的第一部分中修复,该部分存在于Firefox 44及更高版本中。
Cookie字段记录在Firefox's source code:
中Cookie文件格式是换行符分隔值,“*”用作多个记录之间的分隔符。 每个cookie都包含以下字段:
至少,这似乎是IE中的格式,这里的格式似乎非常相似,如果它们有实质性的不同,我会感到惊讶。
我刚刚提交了一个补丁,用于使用Firefox现有的用于Edge的cookie的IE cookie读取代码,这似乎有效。这是reviewboard review for it和revlink in hg。