2012-06-04 93 views
1

我們有一個知識庫,我們想從我們的桌面應用程序鏈接獲取幫助。打開帶有憑證的網址

我試圖用默認的網頁瀏覽器打開它,但我們有.htaccess憑據設置,以便提示。我不希望他們必須輸入用戶名和密碼,因爲我們只爲應用程序設置了一個用戶名和密碼。

這導致他們被提示每次:

Dim url = "http://mysite.com/index.php?/category/40/0/10/" 
Process.Start(url) 

我不能把用戶名和密碼的網址了,因爲IE9不支持它:

http://username:[email protected] < - 不支持較新瀏覽器

我試過使用webbrowser控件,但它使用的是IE4而不是當前的任何東西。這導致它顯示不正確。

Dim hdr = "Authorization: Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes("myuser" + ":" + "password")) + System.Environment.NewLine 
WebBrowser1.Navigate(Url, Nothing, Nothing, hdr) 

我試圖讓註冊表設置強制IE9,但我無法得到它的工作。此外,從我讀過的內容來看,如果他們沒有IE9,那就沒有關係了。

有關如何解決此問題的任何建議?我只想從我的應用程序中打開一個安全的網頁!

謝謝!

+0

所以這是你的問題,打開憑證或瀏覽器被使用?對於基本身份驗證訪問,請參見[此問題](http://stackoverflow.com/questions/6042829/how-can-i-open-a-url-in-web-browser-such-as-ie-and-pass -createntials) – eis

+0

不應該Process.Start(「開始http://www.site.com/a/b」)啓動默認瀏覽器?這必須在Windows前一段時間工作..至於憑據你嘗試oldschool方式的用戶:[email protected]? – Tisho

+0

這兩個都是問題。我無法使用默認瀏覽器打開它,因爲它提示輸入憑據,並且web瀏覽器控件使用ie4而不是本地瀏覽器。 – ErocM

回答

1

您可以搜索以查看基本身份驗證在進一步編碼之前的工作方式。您可以使用HttpAnalyzer或任何其他工具來查看瀏覽器在其請求頭中如何發送用戶名和密碼。他們只是使用標頭的認證部分。你必須建立一個新的請求或找到一個適合你的框架。

基本認證通常由2個請求/響應組成。瀏覽器一開始並不瞭解身份驗證的任何內容,但服務器會以401回覆代碼通知他,這意味着瀏覽器應提供身份驗證。從現在開始,所有請求都有一個使用Base64編碼的驗證標頭,其中包含用戶名和密碼。

+0

這對每個瀏覽器都是獨一無二的嗎? – ErocM

+0

這是HTTP協議,所有瀏覽器都應該遵循它成爲一個真正的HTTP瀏覽器。不管嘗試連接的客戶端應用程序如何。所有想要連接到使用基本身份驗證的Web服務器的客戶端都應遵循這種情況。如果你搜索,你可以找到一個非常着名的RFC文件,詳細描述HTTP。 –

+0

這是一個關於基本身份驗證的python的簡單文檔。你可以使用它的信息而不是python部分:D [Basic Auth。在Python](http://www.voidspace.org.uk/python/articles/authentication.shtml) –