[code=csharp]//设置Cookie
webBrowser1.Document.Cookie=strcookie[/code]
但是有时候使用这种方法会获取不全,或者是获取不到,下面我提供一个方法
[C#] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
//取当前webBrowser登录后的Cookie值
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref int pcchCookieData, int dwFlags, object lpReserved)
//取出Cookie,当登录后才能取
private static string GetCookieString(string url)
{
// Determine the size of the cookie
int datasize = 256
StringBuilder cookieData = new StringBuilder(datasize)
if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, null))
{
if (datasize <0)
return null
// Allocate stringbuilder large enough to hold the cookie
cookieData = new StringBuilder(datasize)
if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, null))
return null
}
return cookieData.ToString()
}
在很多情况下我们会使用间进程的webBrowser去实现一些网页的请求和抓去,这个时候有部分网页是取不到Cookie的,那怎么办呢?下面我提供一个方法,应该99%的都能取到
使用方法也很简单
[code=csharp]//获取Cookie
string strcookie=GetCookieString(“你要获取Cookie的URl”)[/code]例如
[code=csharp]//获取Cookie
string strcookie=GetCookieString(“http://www.sufeinet.com”)[/code]
这样获取的是sufeinet.com的Cookie信息
第一检查您的浏览器,如果你的浏览器IE浏览器,你可以重新设置他们的饼干。即首先打开浏览器,然后点击“菜单栏”工具--internet选项“,打开internet选项窗口,切换到”安全“选项卡,点击”自定义级别“,如图所示:BR>点击“自定义级别”,d出Internet安全区域设置对话框,在其中找到脚本列表,在“重置自定义设置”的“中”复位脚本Java小程序“启用”,点击在如图:
中国所示的“OK”按钮,切换到“隐私”选项后点击确定,在下面的安全拖累设置的级别的隐私“低”或“中等”,然后点击确定。然后重新启动浏览器应该能够支持该Cookie。浏览器不支持cookie解决故障。当然
,有的网友说的反应可以将浏览器升级到最新版本的IE,这样可以解决IE浏览器不支持cookie的故障,建议你可以试试。
第二,如果其他的浏览器,那么可以先计算机病毒,然后卸载现有浏览器,然后重新安装浏览器。
朋友,你这个需求并不是共用不共用COOKIE的问题;要想把网站的会话分开,恐怕不行;
建议用虚拟机试试吧! 答案补充 能不能实现,还得看目标游戏是把会话信息放在COOKIE ,还是放在网页本身;
WebBrowser 的内核是同一个,这个你也清楚的;
当我们登陆某些网站时,在开个空网页,直接输入地址;他会认为我们是已经登录了;
同样的道理,在WebBrowser 里面,也是如此;
当然,也有例外的, 就是该网站本身就支持一机多用户登录,这个就另当别论了;
你说有见过别人实现,或许真的可以吧;
你不妨请教一下对方!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)