2009-08-06 99 views
3

我使用WPF和C#。WPF啓動瀏覽器證書

我希望能夠啓動瀏覽器窗口,最有可能的IE瀏覽器,並提供已知的憑據,以便基於Windows的應用程序可以處理從自身到外部瀏覽器的轉換,而無需用戶再次輸入他/她的憑據。

我不知道如何啓動瀏覽器:

System.Diagnostics.Process.Start(url); 

我的主要問題是,我怎麼能附上身份驗證呢?也許通過以某種方式添加標題?

最後,我真的不希望使用新的WebBrowser控件WPF的內部,由於它是用一個透明的窗口中顯示當前的問題。

回答

0

1)你必須知道如何「登錄」。 要在Web應用程序中手動執行此登錄並使用http調試器(如Fiddler)跟蹤http流量。注意什麼樣的http請求被髮送,什麼名字有參數,等等。 一旦你知道要發送什麼樣的http請求序列來登錄,你必須使用瀏覽器來做這件事。

2)自動實現登錄 2.1)如果有任何機會通過http GET發生登錄 - 只需將正確的查詢字符串追加到url並啓動瀏覽器。只有當您控制Web應用程序並在此機制中構建時纔會發生這種情況,其他智能登錄幾乎總是以POST方式實現。 2.2)如果你必須做POST請求,你有幾個選擇: 2.2.1)你可以提供本地的html文檔,它包含javascript,並從javascript中對登錄表單進行ajax調用。要傳遞參數,您可以使用get參數。

2.2.2)如果沒有別的辦法,你將不得不通過COM(WebBrowser控件)使用瀏覽器

+0

你有偶然的例子嗎?認證機制是基本的。它與使用C#類HttpWebRequest.Credentials的安全性相同。 – Nick 2009-11-25 17:06:31

+0

構建像這樣的網址: http _ // user:[email protected] – devdimi 2009-11-26 13:05:57

0

這將取決於網站如何處理用戶身份驗證。如果您擁有該網站,則可以創建一個URL,以便使用您提供的信息登錄用戶。

0

尼克,

認證將以不同的方式來處理: -

  1. 代理身份驗證是由Windows手動處理。基於
  2. 形式認證由餅乾處理的,因此用戶需要具有存在的cookie。
  3. NTML的Windows可能是在操作系統上的「鑰匙鏈」(記住該密碼)。

乾杯,

菲爾。