Dot-Net

一個視窗中的多個 WebBrowser 會話/程序

  • August 2, 2010

我想創建一個利用 WebBrowser 控制項的多個實例的 .NET 應用程序。問題是我希望每個 Web 瀏覽器控制項都執行它自己的會話。IOW,我要求會話 cookie、javascript 全域命名空間等的集合對於每個實例都是分開的,並且所有實例都出現在同一個視窗中。

AFAIK,這將要求我在單獨的程序中執行每個 Web 瀏覽器控制項。

幾個問題:

  1. 我關於需要多個流程的假設是否正確?
  2. 是否可以使單個 Windows 窗體應用程序中的每個 WebBrowser 實例在單獨的程序中執行?

提前致謝…

目前,不,如果不將每個實例放在不同的程序中,您就無法使用 Web 瀏覽器控制項實現這種隔離。

如果合適,您可以在程序外 COM 伺服器或應用程序的新實例中執行每個控制項。

如果您可以訪問主機文件 ( [Windows]/system32/drivers/etc/hosts),則可以這樣做。

只需將這樣的內容放入主機文件中:

127.0.0.1 web1
127.0.0.1 web2
127.0.0.2 web3
...

(用您的伺服器 ip 替換 ip 地址)然後您可以將 WebBrowser 的多個實例指向 eghttp://web1/..等。WebBrowser 的每個實例將執行一個單獨的會話。它工作正常。缺點是您需要(以程式方式)管理主機文件,這也可能是一個安全問題。

引用自:https://stackoverflow.com/questions/1051365