我正在爲需要從需要摘要式身份驗證的服務器下載某些內容的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中的一個錯誤。其他人在城域應用程序中遇到過這個問題?任何提示?
我發現,只有當URI包含查詢字符串出現問題。似乎是WinRT類中的一個錯誤。我使用POST而不是GET來繞過它,所以沒有查詢字符串,並且Digest的哈希計算正確。 – Ernesto 2012-07-15 21:27:22