我用WebBrowser控件写了个浏览器,
登陆一需要输入 用户名/密码 认证的网站,认证通过,在我写的浏览器页面提示登陆成功。
但是,我用IE再打开这个网页,正常情况下,应该也是认证通过的页面。
但是却提示未认证状态,需要重新输入用户名/密码认证。
这是为什么?
怎么样做能够统一?哪位大大帮忙一下,分数不够可以再加
帮忙顶的兄弟都有分

解决方案 »

  1.   

    cookie的问题,一般服务器对每个用户操作都有个cookie用与保存用户操作的数据, 里面有个超时字段。
    客户端可以用wininet来获得cookie
      

  2.   

    谢谢 kingzai() ,但是我如何能够让我写的WebBrowser浏览器能够支持cookie?
      

  3.   

    你程序中的WebBrowser与IE中的WebBrowser是属于不同进程的,不同进程之间的cookie是不共享的,除非你进的那个网站已经将cookie保存在了用户的cookie池中
      

  4.   

    to Semigod() ,目前的情况看来,网站没有把cookie保存在用户的cookie池中,请问,我想实现这种只需要一次认证后,其他无论以何种浏览器打开后都是已认证状态,应该在我的程序中对webBrowser控件做什么处理?或者该写些什么代码?谢谢了
      

  5.   

    通常Cookie会被存储与Windows目录下的“Temporary Internet Files”的目录中,其文件名格式如下:
        Cookie:<用户名称>@<网站的URL>/
    WININET API支持Cookie的API有:
    InternetGetCookie和InternetSetCookie
    得到cookie后,浏览时把这个字符串写进去
      

  6.   

    to kingzai() ,我是想支持cookie,和ie统一,因为url地址是用户自己输入的。控制不了。
    我如何能够实现和ie统一?肯定有实现方法的,因为用myIE,腾讯IE,等等这类软件认证后,我再用微软的IE来打开同一网页,就不需要再次认证
      

  7.   

    参考myIE的源代码,看看它的实现
      

  8.   

    下载了myie的原码,编译咋那么多的错误。有谁知道如何统一webBrowser和ie的cookie?
      

  9.   

    看信息的保存方式了
    Cookie的上面说过了
    基于Session的登陆状态目前不能跨进程共享
    基于IIS的简单身份验证状态也不能跨进程共享
      

  10.   


    觉得这不单是IE端的问题。如果用WININET也要解决Session的问题。感觉你需要做个服务器端的Session专用服务器,用以保存Session。这样才能完全解决现在存在的所有问题。