Wpf webbrowser禁用外部链接

Wpf webbrowser禁用外部链接,wpf,facebook,Wpf,Facebook,elI正在处理Wpf应用程序。它包含一个webbrowser,用户通过Facebook进行身份验证。问题是用户可以点击链接(例如:忘记密码?)然后打开标准浏览器。。。我想做的是禁用/阻止所有外部链接。因此,用户只能进行身份验证,而不能通过webbrowser控件进行导航。我希望你们能帮我 更新1 就像建议的那样,我可以检查webbrowser的来源。所以我可以允许想要的页面。但问题是链接。它们在IE上打开。我不想打开它们,但要完全阻止它们 更新2 我找到了一个解决方案: 非常简单的解释。。谢谢

elI正在处理Wpf应用程序。它包含一个webbrowser,用户通过Facebook进行身份验证。问题是用户可以点击链接(例如:忘记密码?)然后打开标准浏览器。。。我想做的是禁用/阻止所有外部链接。因此,用户只能进行身份验证,而不能通过webbrowser控件进行导航。我希望你们能帮我

更新1 就像建议的那样,我可以检查webbrowser的来源。所以我可以允许想要的页面。但问题是链接。它们在IE上打开。我不想打开它们,但要完全阻止它们

更新2 我找到了一个解决方案:

非常简单的解释。。谢谢你们的帮助

void Window1_Loaded(object sender, RoutedEventArgs e)
{
    browser = new WebBrowser();
    browser.Navigate(new Uri("http://www.google.com"));
    browser.Navigating += new NavigatingCancelEventHandler(browser_Navigating);
    browser.Navigated += new NavigatedEventHandler(browser_Navigated);
}

void browser_Navigating(object sender, NavigatingCancelEventArgs e)
{
    //Your checks should happen here..
    Console.WriteLine("Loading Webpage !!");
}

void browser_Navigated(object sender, NavigationEventArgs e)
{
    Console.WriteLine("Webpage Loaded !!");
}
您可以注册WebBrowser.Navigating事件。 导航事件处理程序被传递给类的实例。通过将对象的属性设置为true,可以取消导航

或者,如果URL导航不匹配,您可以调用脚本或浏览器实例停止加载

yourWebBrowser.InvokeScript("eval", "document.execCommand('Stop');");

您可以在WebBrowser onNavigationStarted事件侦听器上设置此限制。将此侦听器添加到浏览器中,无论何时启动任何导航,都可以访问事件侦听器参数中的URL。如果与允许的URL匹配,则继续,否则返回false。或者停止导航。事件侦听器有助于实现令人惊叹的效果。我要试一试。我会让你们知道的。塔克斯!现在我无法测试它。星期一上班。但我会在担心后期反应时更新帖子。我试过了,我能够做检查来验证页面。但问题依然存在。例如,在Facebook登录页面中有一个链接(忘记密码了?),如果用户单击这些链接,页面将在internet explorer的新页面上打开,而不在webbrowser用户控件内。有什么想法吗?
yourWebBrowser.InvokeScript("eval", "document.execCommand('Stop');");