2010-10-15 69 views
2

如何獲得使用..._ vti_bin/search.asmx的授權?未授權爲search.asmx網站服務?

我管理設置了上述Web服務的服務引用。

在Sharepoint端口80站點上禁用匿名訪問。

這是我在VS 2010中代碼:

DocSystemApplication.QueryWebServiceProxy.QueryServiceSoapClient client = new DocSystemApplication.QueryWebServiceProxy.QueryServiceSoapClient(); 

client.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials; 

string queryXML = @" .... "; 

System.Data.DataSet dataset = client.QueryEx(queryXML); 

這使運行時異常:

HTTP請求是未經授權的客戶端身份驗證方案 '匿名'。從服務器收到的驗證頭是 'Negotiate,NTLM'。

一個相關的問題是,我發現的例子似乎沒有使用「QueryServiceSoapClient」,而只是「QueryService」?

任何建議,將不勝感激。 // Lars S

+0

類似的問題和答案:http://stackoverflow.com/questions/2608887/sharepoint-web-services-the-http-request-is-unauthorized-with-client-authentic/2609909#2609909 – 2010-10-15 14:13:33

+0

QueryService - 出現成爲SharePoint 2007的方法...而QueryServiceSoapClient是SharePoint 2010的方法。 – 2013-06-26 14:40:54

回答

2

我自己找到了答案。

在App.config有一章節security mode="None", 和下一行... transport clientCredentialType="None" proxyCredentialType="None" realm=""

我改變了這mode="TransportCredentialOnly"和... clientCredentialType="Ntlm" proxyCredentialType="Ntlm" realm=""

,並開始工作!

我們發現此建議here