如何实现WebBrowser与共享Cookie
比如我用WebBrowser载入登录界面,用户登录后,我希望关闭
WebBrowser然后打开一个新的IE界面(不是WebBrowser),
我希望新的IE界面还能用到以前WebBrowser里面的Cookie
,请问是否有办法实现?

解决方案 »

  1.   

    看服务器设定的Cookie的持续时间了
      

  2.   

    准确地说,看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开发内幕>
    手稿很期待这本书的面世) 
      

  3.   

    回题就是
    忘了说清楚了,通常设定的Cookie都不会保存在硬盘上的,
    因为登录信息不能让人共享啊,
    所以我希望能够在NewWindow2的时候将Cookie拷到新的IE窗口
    里面去,不知道是否有办法实现啊