广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    IE缓存和Cookie通过如何变更存储路径

    来源:网络收集  点击:  时间:2025-02-21
    【导读】:
    最近做一个项目,其中一块就是关于IE缓存和Cookie 存储位置变更的问题,下边我把我的解决方案和思路给大家说明一下。工具/原料moreVS2013方法/步骤1/8分步阅读

    前提:我们通过分析和百度,我们了解到Cookie的存储路径为:C:\User\用户名\AppData\Roaming\Microsoft\Windows\Cookies 的路径下,存在多个 Txt 文件,不错这就是浏览网页的Cookie了,但这些cookie和浏览记录也将被映射到C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files中。

    2/8

    那么我们怎么查看IE 缓存的具体路径呢,我们可以通过 IE浏览器 ,Internet 选项(基本-设置)查看,但是这我们只能查看缓存的存储路径,不不能看到Cookie的存储路径,此时我们需要进入注册表,进行查看,位置:

    HKEY_CURRENT_USER/SoftWare/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders 和 User Shell Folders 的COOKIE 和Caches 就是存储路径。

    3/8

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

    当然:修改其他的比如:历史数据、收藏数据,是会立刻生效的。

    4/8

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

    5/8

    最终,给大家一个忠实的建立,就是缓存不要了,直接保存cookie

    不是通过文件保存,而是通过Win32 InternetSetCookieEx,将cookie写入,那么我们如何获取?cookie 以及有效期呢?我们知道了Cookie文件路径后,我们可以通过读取的cookie文件的方式进行。

    6/8

    Cookie 文件夹中有.data 文件我们不要,我们只需要读取txt文件内容就行了,

    Cookie 文件格式为:如图。各个元素之间中间通过 回车符 #10(/n)进行分割。*号作为duocookie的分割符号;

    第1行为 Cookie 名称第2行是 Cookie 的值第3行是 Cookie 所属站点的地址第4行是个标记值(注:准确来说应该是表示该Cookie是否被加密)第5行为超时时间的低位(Cardinal/DWORD)第6行为超时时间的高位第7行为创建时间的低位第8行为创建时间的高位

    其中获取Cookie不难,最主要的是 获取超时时间,和转化为 SetCookieExt 需要的时间格式,下边我们继续讲述:

    7/8

    Cookie 的创建时间我们不需要理会,主要是去5、6 中额超时低位,和高位。

    只需要将:高位左移32位的值+低位 就得到了正确的文件时间,然后转化。

    值得注意的是:有的网站可能存在时间区间差,请注意。

    8/8

    最后在调用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

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 07:40:17  耗时:0.026
    0.0264s