我是調用WCF Web服務的小老鼠,所以希望這是一個簡單的問題。當使用.NET 4 winform客戶端調用Web服務時,如何將授權方案從匿名更改爲NTLM?如何使用NTLM授權方案調用Web服務?
現在我收到異常:HTTP請求未經授權,客戶端身份驗證方案爲「匿名」。從服務器收到的驗證頭是'NTLM'。
我的目標是構建一個小工具來幫助我監視TFS 2010的數據倉庫和多維數據集。 TFS提供了一個WarehouseControlWebService Web服務。登錄到服務器時,我可以在瀏覽器中通過「測試」模式調用該服務。不過,我試圖從桌面遠程調用相同的Web服務。我的用戶帳戶位於服務器上的本地管理員組中。
我創建了一個帶有規範Button1和TextArea1的.NET 4 WinForm。然後我添加了一個服務引用到Web服務,並創造性地把它稱爲ServiceReference1:
Add Service Reference...
http://tfssvr:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx
這裏是我的代碼背後:
private void button1_Click(object sender, EventArgs e)
{
// Creating a proxy takes about 3-4 seconds
var dwSvc = new ServiceReference1.WarehouseControlWebServiceSoapClient();
// Invoking the method throws an MessageSecurityException
var dwStatus = dwSvc.GetProcessingStatus(null, null, null);
}
我越來越System.ServiceModel.Security.MessageSecurityException:
該HTTP請求未經授權,客戶端身份驗證方案爲「匿名」。從服務器收到的驗證頭是'NTLM'。
我試着通過我傳遞憑據:
dwSvc.ClientCredentials.Windows.ClientCredential =
new System.Net.NetworkCredential("user", "pass", "domain");
,也...
dwSvc.ClientCredentials.Windows.ClientCredential =
CredentialCache.DefaultNetworkCredentials;
我涉水通過WCF文檔,但...哦...男孩有那裏很多。我希望這是一件容易的事情?
在此先感謝。
請參閱http://meta.stackexchange.com/questions/2950/should-hi-thanks -taglines-and-salutations-be-from-posts –