饼干存储在哪里?

时间:2012-05-22 11:09:51

标签: cookies

我从C#代码发送HTTPWebRequest,作为回应,我收到一个包含会话ID的cookie。我无法在公开/非公开回复成员中找到cookie。然而,fiddler捕获cookie并且其路径为“/”。谁能告诉我在哪里可以找到这个cookie?我检查了文件夹“C:\ Users \ UserName \ AppData \ Roaming \ Microsoft \ Windows \ Cookies”,但它不在那里。

4 个答案:

答案 0 :(得分:1)

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

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

请参阅this question关于向请求对象添加CookieContainer的答案。

答案 1 :(得分:0)

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

  

Cookie信息存储在配置文件文件夹中,分为两个文件。   从Firefox 3.0和SeaMonkey 2.0开始,cookie信息是   存储在cookies.sqlite和permissions.sqlite文件中。在Firefox中   2或以下和Mozilla Suite / SeaMonkey 1.x,cookie存储在   cookies.txt文件和cookie站点权限存储在   hostperm.1文件。文件描述cookies.sqlite cookies.txt持有   您的所有Cookie,包括登录信息,会话数据和   喜好。 permissions.sqlite hostperm.1保存首选项   您允许或禁止设置cookie的网站,以显示图像,   打开弹出窗口并启动扩展安装。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

[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();
}