我需要發送的HttpWebRequest到URL基本內嵌憑據,如下所示:爲HTTP創建的HttpWebRequest://用戶名:密碼@ doamin /查詢網址
http://user:[email protected]/query
我已經嘗試設置URL原樣,但它似乎沒有通過憑據(得到403)。
嘗試設置的HttpWebRequest的憑據屬性:
request.Credentials = new NetworkCredentials("username","pasword")
並從URL刪除它們(導致http://domain/query
),但仍得到了同樣的結果(403)。
直接從任何瀏覽器使用Url成功,所以證書是好的。
我錯過了什麼?
[更新 - 答案】
這裏是爲我工作的代碼:
string credentials = "username:password";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(formattedUrl);
request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials)));
request.PreAuthenticate = true;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
嘗試了你建議的代碼,但沒有奏效。使用Fiddler查看請求我沒有看到credentails發送... – sternr 2011-12-27 11:06:42
有趣的是,我創建的Uri使用以下結構:「http://www.domain.com」,嘗試創建沒有http://的Uri前綴失敗 – sternr 2011-12-27 11:10:42