3
我的團隊最近在我們的某些服務代碼中發現了一個錯誤,例如使用匿名NTLM SID(而不是與HTTP匿名身份驗證相同;是一個成功的NTLM身份驗證交換,導致匿名SID)在被拒絕時被允許繼續。我們通過檢查WindowsIdentity.IsAnonymous屬性來解決問題,但我想爲這種情況編寫一個自動化測試,所以我們再也不會遇到這個問題。如何使用HttpWebRequest對匿名NTLM進行身份驗證HTTP請求
這導致我的問題。我需要使用HttpWebRequest或Microsoft.HttpClient,通過NTLM身份驗證作爲匿名SID HTTP GET請求到特定的URL。到目前爲止,我能做到這一點的唯一方法是將客戶端代碼作爲LocalSystem運行;由於顯而易見的原因,這對我們的自動化測試製度來說並不理想
我已經試過這樣:
using (WindowsIdentity.GetAnonymous().Impersonate()) {
//Make HTTP request here, with UseDefaultCredentials = true
}
但冒充拋出一個異常,表明該匿名令牌則無法模擬。
還有其他想法嗎?
這不工作。我寫了一個測試,並使用Fiddler,我可以看到它生成的HTTP請求。它不使用帶有匿名令牌的NTLM,而是使HTTP客戶端不使用身份驗證,所以當服務器發回NTLM質詢時,客戶端會放棄。 – anelson 2011-01-25 16:56:38