C#利用浏览器获取完整COOKIE示例

jackxiang 2013-2-27 17:29 | |
为何要转这一篇文章?在客户端里用c#编写的代码,怎么知道浏览器里登录者是谁并自动帮客户端登陆呢,有没有浏览器登录后客户端知道是谁?共享cookie怎么实现 的,目前流行的QQ是客户端登录后浏览器知道是谁,用的是一个浏览器插件和浏览器本身的支持以确保安全,这个刚好相反,是怎么实现的?我看到网上有一篇文章:C#利用浏览器获取完整COOKIE示例。


2.解决方法1: 使用WIN API获取
3.解决方法2:自已写方法读取本地COOKIE文件。(如果有多个浏览器估计得支持多个浏览器目录下的cookie读取才行)



使用WebBrowser获取一个网站的COOKIE,在调用Document.Cookie时,发现无法完整获取其COOKIe
1.原因:
此 Cookie,加入了。httponly
2.解决方法1: 使用WIN API获取
就可以使用InternetGetCookieEx这个Win API来取得,下面是API的方法宣告
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref
System.UInt32 pcchCookieData, int dwFlags, IntPtr lpReserved);
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern int InternetSetCookieEx(string lpszURL, string lpszCookieName, string lpszCookieData, int dwFlags,
IntPtr dwReserved);
private static string GetCookies(string url)
{
  uint datasize = 256;
  StringBuilder cookieData = new StringBuilder((int)datasize);
if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x2000, IntPtr.Zero))
{
  if (datasize < 0)
  return null;
  cookieData = new StringBuilder((int)datasize);
  if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, IntPtr.Zero))
  return null;
}
return cookieData.ToString();
}
实际上它是通过本地COOKIE文件的读取,来取得COOIE的
3.解决方法2:自已写方法读取本地COOKIE文件
public string Cookie()
{
  if (this.Url == null)
  return null;
  string dir = this.Url.Host;
  FileStream fr = new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.Cookies) + "
  index.dat", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

来自:
http://www.builder.com.cn/2013/0226/2145832.shtml
扩展阅读:
关于C# 获取不到safari浏览器Cookie的问题:http://www.cnblogs.com/a546558309/archive/2012/08/21/2648601.html
用C#如何创建、读取cookie:
http://blog.sina.com.cn/s/blog_7e1662b201013nz8.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/6070/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]