2017-07-14 87 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所以你需要添加一個註冊表鍵

相關問題