1
據我所知,本書正在做所有事情,但.NET客戶端在向我的(PHP)請求發送消息時根本沒有發送身份驗證頭, SOAP Web服務。我通過在PHP結尾處記錄原始發佈數據來驗證這一點,並且.NET從不發送任何auth頭文件。如何將HTTP身份驗證證書發送到非.NET Web服務
這是我對我的ExampleWebService Web服務撥打電話之前運行代碼:
ExampleWebService.PreAuthenticate = true;
NetworkCredential myCred = new NetworkCredential("myusername","mypassword");
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri(ExampleWebService.Url), "Basic", myCred);
ExampleWebService.Credentials = myCache;
據我瞭解,預認證應該強制我HTTP對每個請求發送基本認證證書,無論挑戰。這是否只適用於IIS託管服務?我沒有在任何地方發現這個文件。
,有人比我更有經驗在.NET中可以揭示出這個世界將不勝感激,因爲我靠近拉我的頭髮;-)
是「特徵」還是「錯誤」? ;-) – jthompson 2009-09-03 23:16:16
根據http://tools.ietf.org/html/rfc2617#page-5,是正確的行爲。客戶端應該從服務器獲得挑戰和* realm *,即使對於Basic也是如此。 – 2009-09-03 23:25:22
由於身份驗證是可選的,所以WebService並不構成挑戰,所以我認爲這是造成問題的根本原因。其他SOAP客戶端obvioiusly沒有遵循規範的信件和暴力強制每個請求的憑據,因此我沒有遇到這個問題,直到對.NET測試 – jthompson 2009-09-03 23:52:28