设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2015|回复: 1
打印 上一主题 下一主题

【原创】如何获取浏览器存储 Cookie(待补充)

[复制链接]
跳转到指定楼层
1#
发表于 2014-2-22 16:32:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提问的背景:
由于不同的浏览器存储 Cookie 的方式不同,
因此,同一计算机上的不同浏览器没有必要能够读取彼此的 Cookie。
例如,如果使用 Internet Explorer 测试一个页面,
然后再使用其他浏览器进行测试,
那么后者将不会找到 Internet Explorer 保存的 Cookie。

[1]问题一:
当通过HttpWebRequest/httpWebResponse编写代码时,
这些Cookie都存到哪里去了?(跟浏览器进行对比)
注:如果认为是程序自己维护的,也请说明一下~~

[2]问题二:
如何读取IE中的Cookie

[3]问题三:
如何读取其它浏览器中的Cookie
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2014-2-22 16:33:26 | 只看该作者
读取IE中的Cookie


  • using System;  
  • using System.Runtime.InteropServices;  
  • using System.Text;  
  • using System.Net;  
  • using System.Linq;  
  • using System.Collections.Generic;  
  • namespace PCTools  
  • {  
  •     /**/  
  •     ///<summary>  
  •     /// 获取Cookie的方法类。  
  •     ///</summary>  
  •     public class CookieManger  
  •     {  
  •         [DllImport("wininet.dll", SetLastError = true)]  
  •         public static extern bool InternetGetCookie(string url, string cookieName,StringBuilder cookieData, ref int size);  
  •         public static CookieContainer GetUriCookieContainer(Uri uri)  
  •         {  
  •             CookieContainer cookies = null;  
  •             //定义Cookie数据的大小。  
  •             int datasize = 256;  
  •             StringBuilder cookieData = new StringBuilder(datasize);  
  •             if (!InternetGetCookie(uri.ToString(), null, cookieData, ref datasize))  
  •             {  
  •                 if (datasize < 0) return null;  
  •                 // 确信有足够大的空间来容纳Cookie数据。  
  •                 cookieData = new StringBuilder(datasize);  
  •                 if (!InternetGetCookie(uri.ToString(), null, cookieData, ref datasize)) return null;  
  •             }  
  •             if (cookieData.Length > 0)  
  •             {  
  •                 cookies = new CookieContainer();  
  •                 cookies.SetCookies(uri, cookieData.ToString().Replace(';', ','));  
  •             }  
  •             return cookies;  
  •         }  
  •         public static void PrintCookies(CookieContainer cookies, Uri uri)  
  •         {  
  •             CookieCollection cc = cookies.GetCookies(uri);  
  •             foreach (var cook in cc)  
  •             {  
  •                 Console.WriteLine(cook);  
  •             }  
  •         }  
  •     }  
  •     public class Test  
  •     {  
  •         static void Main(string[] args)  
  •         {  
  •             string url = @"http://www.kaixin001.com/";  
  •             Uri uri = new Uri(url);  
  •             CookieContainer cookies = CookieManger.GetUriCookieContainer(uri);  
  •             CookieManger.PrintCookies(cookies,uri);  
  •               
  •             Console.ReadKey();  
  •         }  
  •     }  
  • }  



您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-8 07:48 , Processed in 0.067578 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表