.net 一个窗口中有多个WebBrowser会话/进程
我想创建一个利用WebBrowser控件的多个实例的.NET应用程序。问题是我希望每个web浏览器控件都运行自己的会话。我有一个要求,会话cookie、javascript全局名称空间等的集合对于每个实例都是独立的,并且所有实例都出现在同一个窗口中 好的,这需要我在一个单独的进程中运行每个web浏览器控件 有几个问题:.net 一个窗口中有多个WebBrowser会话/进程,.net,winforms,internet-explorer,webbrowser-control,.net,Winforms,Internet Explorer,Webbrowser Control,我想创建一个利用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可能会处于隔离模式。