2010-05-04 49 views
3

我試圖從我的提供商下載文件。Windows Phone 7,通過身份驗證與SSL下載xml

該URL受基本用戶名和密碼保護,並且所有內容都通過ssl發送。

所以我嘗試這樣做:

 WebClient proxy = new WebClient(); 

     proxy.DownloadStringCompleted += (o, dscea) => System.Diagnostics.Debugger.Break(); 
     proxy.Credentials = new NetworkCredential("username", "password"); 
     proxy.DownloadStringAsync(new Uri("https://..../.../data.xml")); 

正如你可以看到我嘗試驗證。該網址是正確的,並且當我嘗試從Twitter下載某些內容時,該代碼正常工作。

和URL的作品,當我鍵入它在Firefox/Internet Explorer中

什麼我忘了連接到這個xml文件?

我得到的錯誤是:

而且我使用Visual Studio 2010(完整,不表達),以及CTP刷新:)

+0

@Snake - 在臺式機上的Silverlight應用程序中執行此操作嗎?如果是這樣,那麼問題是特定於WP7,我們可能能夠提供更有針對性的援助...... – Richard 2010-05-05 07:45:09

+0

這是什麼目前的狀態?特別是與釋放位。我們是否仍然遇到同樣的問題? – McKay 2011-01-09 08:26:07

回答

6

這似乎是在Beta工具版本中修復的。我不得不直接設置授權標頭,因爲.NET不能像你期望的那樣處理基本授權。這是我的工作代碼片段:

var client = new WebClient(); 

var token = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", username, password))); 
var authHeader = string.Format("Basic {0}", token); 

client.Headers["Authorization"] = authHeader; 
client.DownloadStringCompleted += (s, e) => 
{ 
    // handle result 
}; 

client.DownloadStringAsync(url); 
+0

我還沒有嘗試過測試版。我會。很快:P謝謝! – Snake 2010-07-13 09:57:28

2

顯然出了問題,當您試圖做一個SSL請求。 Silverlight不支持通過SSL進行身份驗證(拋出not notpleplementedException)在REGULAR Silverlight中。

所以我很確定這是WP7中的相同問題。

+0

當我嘗試訪問Google ClientLogin時,我看到了同樣的情況。我雖然只是我。 CTP的危險之一。他們在出貨之前最好解決這個問題。 – ageektrapped 2010-05-05 13:48:25

+1

但它也發生在普通的Silverlight中。這就是爲什麼我擔心... – Snake 2010-05-06 05:22:41