一个窗口中的多个Web浏览器会话/进程

时间:2009-06-26 21:30:49

标签: .net winforms internet-explorer webbrowser-control

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

AFAIK,这将要求我在一个单独的过程中运行每个Web浏览器控件。

几个问题:

  1. 我对多个流程的要求是否正确?
  2. 是否可以使单个Windows窗体应用程序中的每个WebBrowser实例在单独的进程中运行?
  3. 提前致谢...

2 个答案:

答案 0 :(得分:9)

目前,不,您不能使用Web浏览器控件实现此类别的隔离,而不将每个实例放在不同的进程中。

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

答案 1 :(得分:1)

如果您可以访问hosts文件([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)管理主机文件,这也可能是一个安全问题。

相关问题