2012-07-14 36 views
1

我正在爲需要從需要摘要式身份驗證的服務器下載某些內容的Windows 8(metro應用程序)開發應用程序。帶有摘要式身份驗證的HttpWebRequest在metro應用程序中返回錯誤401(Windows 8)

這是我用來發送請求的代碼:

WebRequest webRequest = WebRequest.Create("http://my_site_with_http_digest_auth"); 
webRequest.Method = "GET"; 
webRequest.Credentials = new NetworkCredential("user", "pass"); 
webRequest.UseDefaultCredentials = false; 
HttpWebResponse webResponse = (HttpWebResponse)await webRequest.GetResponseAsync(); 
if (webResponse != null && webResponse.StatusCode == HttpStatusCode.OK) 
{ 
    // Analyze response here... 
} 

當我運行在Metro應用的代碼,服務器返回401 (authentication error)。完全相同的代碼在Windows Phone和普通的.NET應用程序上運行良好。這隻發生在Windows 8 metro應用程序上。也許這是WinRT中的一個錯誤。其他人在城域應用程序中遇到過這個問題?任何提示?

+2

我發現,只有當URI包含查詢字符串出現問題。似乎是WinRT類中的一個錯誤。我使用POST而不是GET來繞過它,所以沒有查詢字符串,並且Digest的哈希計算正確。 – Ernesto 2012-07-15 21:27:22

回答