.net 一个窗口中有多个WebBrowser会话/进程

.net 一个窗口中有多个WebBrowser会话/进程,.net,winforms,internet-explorer,webbrowser-control,.net,Winforms,Internet Explorer,Webbrowser Control,我想创建一个利用WebBrowser控件的多个实例的.NET应用程序。问题是我希望每个web浏览器控件都运行自己的会话。我有一个要求,会话cookie、javascript全局名称空间等的集合对于每个实例都是独立的,并且所有实例都出现在同一个窗口中 好的,这需要我在一个单独的进程中运行每个web浏览器控件 有几个问题: 我关于需要多个流程的假设正确吗 是否可以使单个Windows窗体应用程序中的每个WebBrowser实例在单独的进程中运行 先谢谢你 目前,不可以,如果不将每个实例放在不同的进程

我想创建一个利用WebBrowser控件的多个实例的.NET应用程序。问题是我希望每个web浏览器控件都运行自己的会话。我有一个要求,会话cookie、javascript全局名称空间等的集合对于每个实例都是独立的,并且所有实例都出现在同一个窗口中

好的,这需要我在一个单独的进程中运行每个web浏览器控件

有几个问题:

  • 我关于需要多个流程的假设正确吗
  • 是否可以使单个Windows窗体应用程序中的每个WebBrowser实例在单独的进程中运行

  • 先谢谢你

    目前,不可以,如果不将每个实例放在不同的进程中,就无法使用Web浏览器控件实现此类隔离


    如果合适,可以在进程外COM服务器或应用程序的新实例中运行每个控件。

    如果可以访问主机文件(
    [Windows]/system32/drivers/etc/hosts
    ),则可以执行此操作

    只需将类似的内容放入hosts文件:

    127.0.0.1 web1
    127.0.0.1 web2
    127.0.0.2 web3
    ...
    
    (将ip地址替换为您的服务器ip),然后您可以将WebBrowser的多个实例指向,例如
    http://web1/..
    等。
    WebBrowser的每个实例都将运行一个单独的会话。它很好用。缺点是您需要(programmaticaly)管理主机文件,这可能也是一个安全问题。

    您好,我看到这个问题得到了回答,但您是如何管理的?我创建了使用WebBrowser组件的VB6(在我的例子中)应用程序,它们仍然共享相同的会话。不知道我是否应该发布另一个问题..我有同样的OP需求,但我口袋里没有解决方案。我试着把一些
    WebBrowser
    控件放在我的表单中:我知道它们共享同一个会话(很遗憾,但我知道)。问题是即使运行我的应用程序的多个实例,它们仍然共享同一个会话:我认为这是因为Internet Explorer进程仍然是相同的。你有什么建议吗?ThanksWeb浏览器控件的会话按进程隔离;如果你看到某种“共享”,这意味着存在一个持久(非会话)cookie。如果IE进程可以用
    iexplore.exe-private-nomerge启动,cookie可能会处于隔离模式。