2011-06-29 60 views
2

如何在受用戶名/密碼對話框保護的新瀏覽器窗口中打開URL並自動填充這些字段(或者甚至更好地將憑據傳遞給瀏覽器)?WPF在具有憑據的瀏覽器中打開URL

注意我需要在新的瀏覽器窗口中打開它,而不是一個WPF WebControl。

目前我使用的LaunchUriOrFileAction在打開新的瀏覽器窗口時工作正常,但我需要自動填充憑據。

默認瀏覽器將爲客戶端的IE8。所以http://user:[email protected]舊的方式不會工作。

由於

回答

3

以下解決方案使用web瀏覽器控件打開一個新的IE瀏覽器窗口。它的工作原理,但有幾個limitiations:

  • 很明顯,它只能打開IE瀏覽器 - 這不會,如果你想讓它打開Firefox
  • 新的瀏覽器窗口出現在後臺工作,以閃爍的按鈕在任務欄
  • 瀏覽器實際上並不記得憑證,以便用戶會得到提示,如果他們試圖導航到另一個密碼保護的網頁

void OpenIEToAuthenticatedUrl(string url, string username, string password) 
{ 
    using (WebBrowser browser = new WebBrowser()) { 
    string userPass = username + ":" + password; 
    string encodedUserPass = Convert.ToBase64String(
     Encoding.ASCII.GetBytes(userPass) 
    ); 

    browser.Navigate(
     url, 
     Guid.NewGuid().ToString(), // Force a new window by passing a unique frame name 
     null, // No POST data 
     "Authorization: Basic " + encodedUserPass 
    ); 
    } 
} 

... 

OpenIEToAuthenticatedUrl(
    "http://example.com/", 
    "user", "pass" 
); 
+0

謝謝,它至少有一個開始,IE的問題很好,但背景窗口是個問題 – Mark

相關問題