Dot-Net
一個視窗中的多個 WebBrowser 會話/程序
我想創建一個利用 WebBrowser 控制項的多個實例的 .NET 應用程序。問題是我希望每個 Web 瀏覽器控制項都執行它自己的會話。IOW,我要求會話 cookie、javascript 全域命名空間等的集合對於每個實例都是分開的,並且所有實例都出現在同一個視窗中。
AFAIK,這將要求我在單獨的程序中執行每個 Web 瀏覽器控制項。
幾個問題:
- 我關於需要多個流程的假設是否正確?
- 是否可以使單個 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 的多個實例指向 eg
http://web1/..等。WebBrowser 的每個實例將執行一個單獨的會話。它工作正常。缺點是您需要(以程式方式)管理主機文件,這也可能是一個安全問題。