我試圖通過WCF從不同服務器上的.ASHX內調用Sharepoint Web服務。如果我在Visual Studio的調試Web服務器內部運行,而不是從IIS運行,則我的代碼工作正常。工作服務器以各種身份驗證模式(Kerberos,NTLM)工作,非工作服務器不工作。在兩種情況下,我都扮演同一個用戶。驗證對WCF服務的調用
使用NTLM,我在Wireshark中記錄了一個工作會話和非工作會話。在工作中,Wireshark解析NTLM數據並報告我期望的DOMAIN和USER NAME。在非工作的,它顯示
DOMAIN: NULL
USER NAME: NULL
我在IIS中調試和模擬肯定是在服務調用點。如果我檢查WindowsIdentity.GetCurrent()
,這是我期望的用戶。
如果我檢查工作和非工作服務器上的WCF服務代理,它們看起來完全相同 - 處理ClientCredentials的部分設置爲""
兩個版本的用戶名和密碼。
關於還有什麼要檢查的任何想法?爲什麼NTLM數據將DOMAIN和USER NAME設置爲NULL - 它從哪裏選擇?