IE缓存和Cookie通过如何变更存储路径
来源:网络收集 点击: 时间:2025-02-21前提:我们通过分析和百度,我们了解到Cookie的存储路径为:C:\User\用户名\AppData\Roaming\Microsoft\Windows\Cookies 的路径下,存在多个 Txt 文件,不错这就是浏览网页的Cookie了,但这些cookie和浏览记录也将被映射到C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files中。


那么我们怎么查看IE 缓存的具体路径呢,我们可以通过 IE浏览器 ,Internet 选项(基本-设置)查看,但是这我们只能查看缓存的存储路径,不不能看到Cookie的存储路径,此时我们需要进入注册表,进行查看,位置:
HKEY_CURRENT_USER/SoftWare/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders 和 User Shell Folders 的COOKIE 和Caches 就是存储路径。

我们不管是通过手工修改注册表的方法还会使用程序修改,我们会发现一个问题,修改Caches时,重启IE立刻就生效了,但是修改Cookie路径,不会生效(且Cookie 不会保存了),但是你把Cookie路径改回之后,又好了,这是个奇怪的问题,后来发现,Cookie路径,需要重启系统才会生效,由此可见,cookie的路径并不是时时从注册表读取额,老铁们,就不要党务时间在这上边边了。
当然:修改其他的比如:历史数据、收藏数据,是会立刻生效的。

那么,同胞们呢,我们为了做个项目可能会用到Cookie和Caches的存储,用作不是之需,比如:多个账号依次登录,我们就需要将cookie和Caches 还原,这样默认是直接登陆的。换一个思路:我们把Caches 和Cookie 保存起来,用的时候在还原过去,不行吗?答案:不行,原因是,Cookie和Caches 建立的有映射关系,如果你把映射关系破话,不打开新的页面的话是没问题的,如果打开新的页面,在进行覆盖的话,就会失效。

最终,给大家一个忠实的建立,就是缓存不要了,直接保存cookie
不是通过文件保存,而是通过Win32 InternetSetCookieEx,将cookie写入,那么我们如何获取?cookie 以及有效期呢?我们知道了Cookie文件路径后,我们可以通过读取的cookie文件的方式进行。

Cookie 文件夹中有.data 文件我们不要,我们只需要读取txt文件内容就行了,
Cookie 文件格式为:如图。各个元素之间中间通过 回车符 #10(/n)进行分割。*号作为duocookie的分割符号;
第1行为 Cookie 名称第2行是 Cookie 的值第3行是 Cookie 所属站点的地址第4行是个标记值(注:准确来说应该是表示该Cookie是否被加密)第5行为超时时间的低位(Cardinal/DWORD)第6行为超时时间的高位第7行为创建时间的低位第8行为创建时间的高位
其中获取Cookie不难,最主要的是 获取超时时间,和转化为 SetCookieExt 需要的时间格式,下边我们继续讲述:

Cookie 的创建时间我们不需要理会,主要是去5、6 中额超时低位,和高位。
只需要将:高位左移32位的值+低位 就得到了正确的文件时间,然后转化。
值得注意的是:有的网站可能存在时间区间差,请注意。


最后在调用SetCookieExt 时将时间传递过去就行了。
具体未:C#代码 Datetime.ToString(r);
设置参数:CookieValue 参数:
cookiename=cookievalue;path=/;expires=有效期
注意:参数CookieName 要传Null 以及:
所有的Url必须带有:http:// 或者Https:// ,而cookie中的domain Url 是没有 Http额。
IECOOKIE版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1245803.html