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