webBrowser内弹出窗口Session共享
我在C#的From内使用了webBrowser控件,当网页是一个需要登陆验证的网页,登陆后点开一个链接时时,会弹出一个IE的窗口,并且会跳转到登陆界面;
如何才能做到弹开的IE与webBrowser控件共享Session,并可以像IE一样正常数据交互;
大家可以找个邮箱的例子试试,分不够可以再加;
------解决方案--------------------把加载页面设置成你的 登录页面 然后再冲登录页面点到 你的目标页面
------解决方案--------------------你可以新增加的webbrowser比如WB2,让弹出窗口的内容显示在WB2里面,这样WB1和WB2就是共享cookies的,因为你的程序和IE是不同的进程,所以肯定不会共享cookies.至于如何让新开的窗口在新的webbroser里面显示,可以在NewWindow事件里面处理。
private void WB1_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
try
{
string url = this.WB1.Document.ActiveElement.GetAttribute("href");
this.WB2.Navigate(url);
}
catch { }
}
------解决方案--------------------
下面这种办法,对于javascript按钮也可以实现
var nativeBrowser = (SHDocVw.WebBrowser)webBrowser1.ActiveXInstance;
nativeBrowser.NewWindow2 += new SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(nativeBrowser_NewWindow2);
下面是打开新窗口的事件
void nativeBrowser_NewWindow2(ref object ppDisp, ref bool Cancel)