Cookies 饼干存放在哪里?

Cookies 饼干存放在哪里?,cookies,Cookies,我从C#code发送了一个HTTPWebRequest,作为响应,我得到了一个包含会话ID的cookie。我无法在响应的公共/非公共成员中找到cookie。然而,fiddler正在捕获cookie,其路径为“/”。谁能告诉我在哪里可以找到这块饼干吗?我检查了文件夹“C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Cookies”,但它不在那里。根据浏览器的不同,Cookies可能物理存储在不同的位置 我认为您最好使用HttpWebReque

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

根据浏览器的不同,Cookies可能物理存储在不同的位置

我认为您最好使用
HttpWebRequest
处理cookies


请参阅关于向请求对象添加
CookieContainer
的回答。

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

Cookie信息存储在profile文件夹中的两个文件中。 从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、显示图像、, 打开弹出窗口并启动扩展安装


Cookie存储取决于浏览器和操作系统。在旧的浏览器中,它们只是存储在一个名为“Cookies”的文件路径中。大多数现代浏览器以某种加密方式存储cookie,通常存储在sqllite db平面文件中。如果您可以通过实际的本地cookie存储(而不是使用浏览器的内置cookie浏览器)提供更多关于您试图跟踪的内容的信息,这将有助于获得更多关于在何处查找或选择您想要的内容的信息。

如果您想将持久cookie与HttpWebRequest一起使用,您需要导入wininet.dll来处理此问题(或者您自己处理持久性)

在的社区内容部分有一个关于MSDN的示例

片段

[DllImport(“wininet.dll”,CharSet=CharSet.Auto,SetLastError=true)]
私有静态extern bool InternetGetCookie(字符串url、字符串名称、StringBuilder数据、ref int dataSize);
私有静态字符串检索eCookiesForURL(字符串url)
{
StringBuilder cookieHeader=新的StringBuilder(新字符串(“”,256),256);
int datasize=cookieHeader.Length;
if(!InternetGetCookie(url,null,cookieHeader,ref-datasize))
{
如果(数据大小<0)
返回字符串。空;
cookieHeader=new StringBuilder(datasize);//使用新datasize调整大小
InternetGetCookie(url,null,cookieHeader,ref-datasize);
}
//结果是这样的:“KEY=Value;KEY2=what ever”
返回cookieHeader.ToString();
}

边/注:考虑使用WebCube而不是HTTPWebRestQuest.看看这两种方法的优缺点。得到了我需要的。。感谢您的早日回复:)
[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();
}