2009-02-25 56 views
1

我在Windows 2003服務器上安裝了Microsoft Search Server 2008 Express,並創建了用於測試的搜索內容源(我們的公司網站)。我可以從搜索中心搜索此源。如何爲Search Server 2008 Express中的搜索Web服務設置訪問權限?

從ASP.NET Web應用程序,我想查詢所提供的Web服務作爲described here

我使用在web.config模擬設置指定用戶賬戶的請求下運行,但我無法找到如何在Search Server中設置該用戶以允許其進行查詢。

<authentication mode="Windows"/> 
<identity impersonate="true" userName="MyDomain\MyUser" password="myPassword" /> 

如果我用我自己的網絡憑據我得到的結果回來,因爲我設置了在搜索服務器實例的完全控制權限,但是當我使用一個替代域帳戶此(MYDOMAIN \ QueryUser)我得到這個錯誤:

System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> Attempted to perform an unauthorized operation.

我在搜索服務器>網站設置>權限將用戶添加到服務器>添加用戶,並給予該帳戶的完全控制,但它仍然無法使用web服務。有什麼地方我失蹤了嗎?

**編輯

好吧,我已經嘗試了戈登的建議,並使用SharePoint應用程序使用的憑據,使錯誤消失。另外,將第二個域用戶添加到服務器上的本地管理員組將導致錯誤消失。

這些更改授予web服務的權限是什麼?我必須訴諸使用這些解決方法嗎?或者我可以給我的域用戶適當的權限在Sharepoint的地方?

回答

1

訪問MOSS的搜索Web服務的關鍵是

1)來驗證正確 2)來強制MOSS web服務使用的身份

的第一部分檢查,如果所有屬性都正確分配爲您的NetworkCredential,我通常會提供這些:第二部分一個解決方法是刪除IUSR

NetworkCredential credentials = new NetworkCredential(userName, password, domain); 
service.PreAuthenticate = true; 
service.Url = your_ws_fullurl; 
service.UseDefaultCredentials = false; 
service.useDefaultCredentialsSetExplicitly = true; 
service.Credentials = credentials; 

(IIS匿名用戶)訪問/_vti_bin/Search.asmx與IIS文件的權限(有到/ _vti_bin /文件夾,右鍵單擊文件安全屬性),這樣MOSS將檢索憑證緩存中提供的憑據,並且您將不會收到「未授權操作」消息