2017-07-14 85 views
-1

我在C#中使用WebBrowser来显示包含登录表单的网站。在我成功登录后,网站的某些部分未在WebBrowser中显示,但在默认浏览器中显示的是同一网站。WinForms WebBrowser控件不加载整个网站

另一个问题是,当我点击WebBrowser中的链接时,它会在默认浏览器(Firefox,chrome等)中打开。

我的应用程序自动设置用户名和密码登录。

ChangeUserAgent(); 
var request = (HttpWebRequest)WebRequest.Create(loadLinks(namewebsite)); 
string useragent = request.UserAgent = "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"; 
webBrowser2.Navigate(request.RequestUri,null,null, "User-Agent:Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"); 
loadauthintication(namewebsite, _username, _password); 

它是方法loadauthintication

using (var webClient = new System.Net.WebClient()) 
     { 
      var json = webClient.DownloadString(@"http://example.com/getauthintication.php?name="+name+"&user="+user+"&pass="+pass); 
      // Now parse with JSON.Net 
      // MessageBox.Show(json); 
      string[] array = json.Split('~'); 
      username = array[0]; 
      password = array[1]; 

     } 

方法

public void ChangeUserAgent() 
    { 
     ua = "Googlebot/2.1 (+http://www.google.com/bot.html)"; 

     UrlMkSetSessionOption(URLMON_OPTION_USERAGENT_REFRESH, null, 0, 0); 
     UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, ua, ua.Length, 0); 
    } 
+0

什么是Windows论坛浏览器? –

+0

webBrowser组件在C# –

+0

显示一些更多的代码,它现在的样子以及它应该是什么样子的截图等等。 –

回答

0

问题与WebBrowsercontrol是,默认情况下它呈现输出在IE7呈现模式。里克斯特拉尔写了一个very detailed post,涵盖了你可以解决这个问题的一些方法。

我通常使用的方式是通过在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION处创建一个新密钥来修改注册表,该密钥是为该应用程序的可执行文件命名的(例如ConsoleApplication1.exe),并将该值设置为Internet Explorer I版本的值知道会被安装在目标环境中 - 对我来说一直是IE11 - 的11001

注意值:由于里克在他的帖子中提到,要记住,当通过Visual Studio运行的名称,你的exe可能会/将是ConsoleApplication1.vshost.exe所以你需要添加一个注册表键

相关问题