私は最近、非常によく似た状況に遭遇しました。私の場合、ポップアップブラウザは埋め込みブラウザのセッションを共有していませんでした。私がしなければならなかったのは、NewWindowイベントをキャプチャしてキャンセルし、目的のURLを埋め込みブラウザに送信することでした。ActiveXブラウザインスタンスを使用する必要がありました。これは、起動しようとしたURLを提供するためです。これが私のコードです:
これを機能させるには、プロジェクトにMicrosoft InternetControlsCOM参照を追加する必要があります。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// this assumes that you've added an instance of WebBrowser and named it webBrowser to your form
SHDocVw.WebBrowser_V1 axBrowser = (SHDocVw.WebBrowser_V1)webBrowser.ActiveXInstance;
// listen for new windows
axBrowser.NewWindow += axBrowser_NewWindow;
}
void axBrowser_NewWindow(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Processed)
{
// cancel the PopUp event
Processed = true;
// send the popup URL to the WebBrowser control
webBrowser.Navigate(URL);
}
}