Проблемы потребления пользовательских веб-служб SharePoint - HTTP 401: неавторизовано - PullRequest
2 голосов
/ 06 октября 2009

У меня есть пользовательский веб-сервис, развернутый в WSS 3. У него есть два веб-метода.

Первый возвращает версию загруженной сборки без какого-либо вызова объектов SharePoint. Вторая возвращает некоторую базовую информацию о библиотеке, что-то вроде:

var spLibrary = [find library logic];
return spLibrary.Name+"@"+spLibrary.Url;

В клиентском приложении у меня есть что-то вроде следующего:

var service = new WebService1();
service.Url = [url];
service.Credentials = System.Net.CredentialCache.DefaultCredentials;

service.Method1();
service.Method2();

Когда клиентское приложение запускается на компьютере, на котором развернут SharePoint, все работает просто отлично.

Когда клиентское приложение запускается на удаленном компьютере (но под тем же пользователем), первый метод все еще работает, но второй выдает System.Net.WebException: HTTP 401: неавторизован.

Я попытался установить учетные данные вручную (service.Credentials = new System.Net.NetworkCredential (логин, пароль, домен);), но это не помогает.

Я пытался вызвать встроенные веб-сервисы SharePoint, используя похожий сценарий , и они прекрасно работают: Извините за ошибку ... Некоторые методы не работали нормально без соответствующих привилегий.

var service = new GroupsService(); 
service.Url = [url]; 
service.Credentials = System.Net.CredentialCache.DefaultCredentials; 

service.SomeMethod();

1 Ответ

3 голосов
/ 07 октября 2009

Проблема была решена. Пользователь, учетная запись которого использовалась для взаимодействия с sharepoint, получил права администратора семейства сайтов, и все работало нормально.

Это НЕ было проблемой двойного прыжка.

Надеюсь, что этот опыт поможет кому-то еще.

Вот ссылка на ветку форумов MSDN.

...