如何实现WebBrowser与共享Cookie
比如我用WebBrowser载入登录界面,用户登录后,我希望关闭
WebBrowser然后打开一个新的IE界面(不是WebBrowser),
我希望新的IE界面还能用到以前WebBrowser里面的Cookie
,请问是否有办法实现?
比如我用WebBrowser载入登录界面,用户登录后,我希望关闭
WebBrowser然后打开一个新的IE界面(不是WebBrowser),
我希望新的IE界面还能用到以前WebBrowser里面的Cookie
,请问是否有办法实现?
解决方案 »
- delphi到C# 几句话 求翻译
- 我是新手,请教大家一个问题
- 请教(关于image和bitmap控件)
- 再一次发帖,我就不信没有高手??????????????
- 有谁认为是delphi的高手,留个QQ交个朋友!
- 急需delphi 5.0!请各位帮忙!哪有下载,告诉俺个链接就行!多谢了!
- 我用的是WINDOWS XP HOME版,为什么没有IIS、PWS?
- 急救:我在ACCESS里对数据库加密,在ADOConnection中的Database password中加了密码,测试通过。程序中使用Session.Addpassword("**")传送了密码。但是运行提示"被*独占"???
- 初学者问题,关于类与对象
- 为什么用QUERY返回的数据集不能修改呢?
- 求助~~帮忙看看这个小程序~~~
- 问高手,关于WebBrowser控件使用的高级问题 (Cookie)
http://www.blogjava.net/zhaijianhui/archive/2006/05/19/46953.html什么是Cookie
Cookie是一种在客户端保持HTTP状态信息的技术,它好比商场发放的优惠卡。
顾客在一个商场购物结账离开时,商场可以决定是否赠送给顾客一张优惠卡,
不同顾客的优惠卡上记载的信息可以不同,例如,记载该顾客累计购物的金
额和有效期限。顾客可以决定是否接受这张优惠卡,一旦顾客接受了这张优
惠卡,那么他在以后每次光顾该商场时,都将携带这张优惠卡,商场也将根
据这张优惠卡上记载的信息进行一些特殊的事务处理,例如,计算折扣率和
累加本次购物金额。Cookie是在浏览器访问WEB服务器的某个资源时,由WEB
服务器在HTTP响应消息头中附带传送给浏览器的一片数据,WEB服务器传送给
各个客户端浏览器的数据是可以各不相同的。浏览器可以决定是否保存这片
数据,一旦WEB浏览器保存了这片数据,那么它在以后每次访问该WEB服务器
时,都应在HTTP请求头中将这片数据回传给WEB服务器。显然,Cookie最先是
由WEB服务器发出的,是否发送Cookie和发送的Cookie的具体内容,完全是由
WEB服务器决定的。WEB服务器通过在HTTP响应消息中增加Set-Cookie响应头字段将Cookie信息发
送给浏览器,浏览器则通过在HTTP请求消息中增加Cookie请求头字段将Cookie
回传给WEB服务器。一个Cookie只能标识一种信息,它至少含有一个标识该信息
的名称(NAME)和设置值(value)。一个WEB站点可以给一个WEB浏览器发送
多个Cookie,这样,在WEB浏览器和WEB服务器之间就可以使用多个Cookie来
传递多种信息,例如,用一个Cookie来标识访问者的姓名,用另外一个Cookie
来标识该用户登录站点的次数。一个Cookie除了有名称和设置值外,它还可以
有一些其他的附加属性,例如,Cookie的有效时间。如果设置了Cookie的有效
时间,接受它的浏览器进程将该Cookie保存在计算机硬盘中,只有该Cookie超
出有效时间后才被删除,这样的Cookie将被同一台计算机上启动的多个浏览器
进程共享。正如一个顾客可以有多家商场提供的优惠卡一样,一个WEB浏览器也
可以存储多个WEB站点提供的Cookie。为了防止Cookie塞满客户机的硬盘,浏览
器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的
大小限制为4KB。如果没有设置Cookie的有效时间,接受它的浏览器进程只将该
Cookie保存在自己的内存空间中,在该浏览器进程关闭时,它里面保存的所有
Cookie也将随之消失。 Cookie实现了一种在浏览器和服务器之间产生有状态会话的方式,它可以把一
个浏览器访问的同一个服务器上的所有程序贯连起来,在这些程序之间传递数据。
例如,当用户使用浏览器访问某个网站的登录程序进行登录后,无论这个浏览器
再访问该网站的哪个程序,其他程序都能知道访问者的身份信息,这是在WEB站点
中非常普遍的一个应用。这种应用通常就是采用Cookie技术来实现的,当WEB服
务器程序验证登录请求中的用户名和密码后,产生一个标识该用户身份的标识号,
然后在响应消息中将该标识号以Cookie的形式传递给浏览器,浏览器在以后每次
访问该WEB服务器时,都自动在请求消息头中将标识号又以Cookie的形式返回给
WEB服务器,凭借浏览器返回的标识号,WEB服务器的其他程序就能分辨出当前请
求是由哪个用户发出的。但是,有一点要注意,不保存在硬盘中的Cookie信息是
否可以被同一台计算机上启动的多个浏览器进程共享,不同的浏览器有不同的处
理方式。对于IE浏览器来说,保存在其中一个浏览器进程的内存空间中的Cookie
是不能被其他浏览器进程共享的,这就会出现同一台计算机上的每个浏览器进程
都会与服务器形成各自独立的会话;而对于Mozilla Firefox浏览器来说,所有
的进程和标签页都共享cookie信息。另外,在IE浏览器中按Ctrl-N键(或者单击
“文件”;;“新建”;;“窗口”菜单)打开的窗口或者是用javascript的
window.open语句打开的窗口,都会共享原窗口的Cookie信息,因为它们属于同一
个浏览器进程内部的多个窗口(出自张孝祥老师的<深入体验JavaWeb开发内幕>
手稿很期待这本书的面世)
忘了说清楚了,通常设定的Cookie都不会保存在硬盘上的,
因为登录信息不能让人共享啊,
所以我希望能够在NewWindow2的时候将Cookie拷到新的IE窗口
里面去,不知道是否有办法实现啊