如何实现WebBrowser与共享Cookie
比如我用WebBrowser载入登录界面,用户登录后,我希望关闭
WebBrowser然后打开一个新的IE界面(不是WebBrowser),
我希望新的IE界面还能用到以前WebBrowser里面的Cookie
,请问是否有办法实现?
比如我用WebBrowser载入登录界面,用户登录后,我希望关闭
WebBrowser然后打开一个新的IE界面(不是WebBrowser),
我希望新的IE界面还能用到以前WebBrowser里面的Cookie
,请问是否有办法实现?
解决方案 »
- 求DElphi大神帮助,sql语句中如何查询某月的所有数据
- 导入数据时的速度问题
- 在使用REPORT 报表打印时,如果内容较多,怎么样换行继续打印?
- 请教 ClientDataSet 整个列更新的问题!
- 如何判断FLASH文件每秒播放的帧率(即多少帧/秒)
- 问题 急
- 这样简单的问题都搞不定1
- 在Object Pascal 中有类似于C++中的引用吗?
- 来者有分-------------->在DELPHI中动态创建ACCESS数据库和它的表;在DELPHI中修改ACCESS数据库密码------------------------------->
- qrreport打印detail和pagefooter之间空白解决方法
- 问高手,关于WebBrowser控件使用的高级问题 (Cookie)
- 你知道哪些著名游戏是用Delphi编的吗?
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窗口
里面去,不知道是否有办法实现啊