1

Microsoft Search Server 2008 Express を Windows 2003 サーバーにインストールし、テスト用の検索コンテンツ ソース (当社の企業 Web サイト) を作成しました。このソースは、検索センターから問題なく検索できます。

ASP.NET Web アプリケーションから、ここで説明されているように、提供された Web サービスを照会しようとしています。

web.config で偽装設定を使用して、要求を実行するユーザー アカウントを指定していますが、検索サーバーでそのユーザーを設定してクエリを実行できるようにする方法がわかりません。

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

独自のネットワーク資格情報を使用すると、検索サーバー インスタンスでフル コントロールのアクセス許可が設定されているため、結果が返されますが、これに別のドメイン アカウント (MyDomain\QueryUser) を使用すると、次のエラーが発生します。

System.Web.Services.Protocols.SoapException: サーバーは要求を処理できませんでした。---> 不正な操作を試みました。

[検索サーバー] > [サイトの設定] > [アクセス許可] > [ユーザーの追加] でユーザーをサーバーに追加し、アカウントにフル コントロールを付与しましたが、それでも Web サービスを使用できません。不足している設定はありますか?

**編集

OK、Gordon の提案を試してみました。Sharepoint アプリケーションが使用している資格情報を使用すると、エラーが解消されます。また、2 番目のドメイン ユーザーをサーバーのローカルの Administrators グループに追加すると、エラーが解消されます。

これらの変更により、Web サービスに付与されるアクセス許可は何ですか? これらの回避策を使用する必要がありますか?それとも、Sharepoint のどこかでドメイン ユーザーに適切なアクセス許可を与えることができますか?

4

1 に答える 1

1

MOSS の検索 Web サービスにアクセスするための鍵は、

1) 適切に認証するため 2) MOSS Web サービスにその ID を強制的に使用させるため

最初の部分では、すべてのプロパティがネットワーク資格情報に適切に割り当てられているかどうかを確認します。通常、これらを提供します。

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

2 番目の部分の 1 つの解決策は、IIS で /_vti_bin/Search.asmx ファイルにアクセスする権利を IUSR (IIS 匿名ユーザー) から削除することです (/_vti_bin/ フォルダーに移動し、右クリックしてセキュリティ プロパティをファイルします)。この方法で MOSS資格情報キャッシュで提供された資格情報を取得し、「許可されていない操作」メッセージは表示されません

于 2009-10-07T13:17:03.823 に答える