Как установить права доступа для веб-службы поиска в Search Server 2008 Express?

Я установил Microsoft Search Server 2008 Express на сервер Windows 2003 и создал источник поискового контента (наш корпоративный веб-сайт) для тестирования. Я могу легко найти этот источник в Центре поиска.

Из веб-приложения ASP.NET я пытаюсь запросить предоставленную веб-службу, как описано здесь.

Я использую настройки олицетворения в web.config, чтобы указать учетную запись пользователя, под которой выполняется запрос, но я не могу понять, как настроить этого пользователя на сервере поиска, чтобы он мог выполнять запрос.

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

Если я использую свои собственные сетевые учетные данные, я получаю результаты обратно, поскольку я настроен с разрешениями Full Control в экземпляре Search Server, но когда я использую для этого учетную запись альтернативного домена (MyDomain \ QueryUser), я получаю эту ошибку:

System.Web.Services.Protocols.SoapException: серверу не удалось обработать запрос. ---> Попытка выполнить несанкционированную операцию.

Я добавил пользователя на сервер в разделе «Сервер поиска»> «Настройки сайта»> «Разрешения»> «Добавить пользователей» и предоставил учетной записи полный доступ, но он по-прежнему не может использовать веб-службу. Есть ли какая-то настройка, которую мне не хватает?

**РЕДАКТИРОВАТЬ

Хорошо, я попробовал предложение Гордона, и использование учетных данных, которые использует приложение Sharepoint, устраняет ошибку. Кроме того, добавление второго пользователя домена в локальную группу администраторов на сервере устраняет ошибку.

Какие разрешения эти изменения предоставляют веб-сервису? Должен ли я прибегать к этим обходным путям, или я могу где-нибудь дать своему пользователю домена соответствующие разрешения в Sharepoint?

Ответов (1)

ключ для доступа к поисковой веб-службе MOSS -

1) для правильной аутентификации 2) для принудительного использования веб-службы MOSS этого идентификатора

Для первой части проверьте, правильно ли назначены все свойства для ваших сетевых учетных данных, я обычно предоставляю их:

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

для второй части первое решение состоит в том, чтобы удалить IUSR (анонимный пользователь IIS) право доступа к файлу /_vti_bin/Search.asmx с помощью IIS (попал в папку / _vti_bin /, щелкните правой кнопкой мыши, чтобы открыть свойства безопасности файла), таким образом MOSS получит учетные данные, предоставленные в кеше учетных данных, и у вас не будет сообщения о несанкционированной операции.