【问题标题】:Where are the cookies stored?cookie 存储在哪里?
【发布时间】:2012-05-22 11:09:51
【问题描述】:

我从 C# 代码发送一个 HTTPWebRequest,作为响应,我得到一个包含会话 ID 的 cookie。我无法在响应的公共/非公共成员中找到 cookie。但是 fiddler 正在捕获 cookie,它的路径是“/”。谁能告诉我我应该在哪里找这个饼干?我检查了文件夹“C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Cookies”,但它不存在。

【问题讨论】:

标签: cookies


【解决方案1】:

Cookie 可能物理存储在不同的位置,具体取决于浏览器。

我认为你最好让 HttpWebRequest 使用 cookie。

请参阅this question 中有关将CookieContainer 添加到请求对象的答案。

【讨论】:

  • 得到了我需要的东西.. 感谢您的早期回复.. :)
【解决方案2】:

每个浏览器都将 cookie 存储到不同的位置 例如

Cookie 信息存储在配置文件文件夹中的两个文件中。 从 Firefox 3.0 和 SeaMonkey 2.0 开始,cookie 信息是 存储在文件 cookies.sqlite 和 permissions.sqlite 中。在火狐中 2 或更低版本和 Mozilla Suite/SeaMonkey 1.x,cookie 存储在 cookies.txt 文件和 cookie 站点权限存储在 hostperm.1 文件。文件 描述 cookies.sqlite cookies.txt 持有 您的所有 cookie,包括登录信息、会话数据和 优先。 permissions.sqlite hostperm.1 保存关于 您允许或禁止哪些网站设置 cookie、显示图像、 打开弹出窗口并启动扩展安装。

【讨论】:

    【解决方案3】:

    Cookie 存储取决于您的浏览器和操作系统。在较旧的浏览器中,它们只是存储在名为“Cookies”之类的文件路径中。大多数现代浏览器以某种加密方式存储 cookie,通常在 sqllite db 平面文件中。如果您可以通过实际的本地 cookie 存储(而不是使用浏览器的内置 cookie 浏览器)提供有关您尝试追踪的内容的更多信息,这将有助于获得有关在哪里查找或替代您所拥有内容的更多信息介意。

    【讨论】:

      【解决方案4】:

      如果您想在 HttpWebRequest 中使用持久性 cookie,则需要导入 wininet.dll 来处理此问题(或者您自己处理持久性)。

      在 MSDN 上的社区内容部分有一个示例 WebRequest.Create Method。

      sn-p

      [DllImport("wininet.dll", CharSet=CharSet.Auto , SetLastError=true)] 
              private static extern bool InternetGetCookie (string url, string name, StringBuilder data, ref int dataSize);
      
      private static string RetrieveIECookiesForUrl(string url)
      {
          StringBuilder cookieHeader = new StringBuilder(new String(' ', 256), 256);
          int datasize = cookieHeader.Length;
          if (!InternetGetCookie(url, null, cookieHeader, ref datasize))
          {
              if (datasize < 0) 
                  return String.Empty;
              cookieHeader = new StringBuilder(datasize); // resize with new datasize
              InternetGetCookie(url, null, cookieHeader, ref datasize);
          }
          // result is like this: "KEY=Value; KEY2=what ever"
          return cookieHeader.ToString();
      }
      

      【讨论】:

        猜你喜欢
        • 2015-09-10
        • 1970-01-01
        • 2010-10-20
        • 2016-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-29
        • 1970-01-01
        相关资源
        最近更新 更多