Я размещаю веб-приложение ASP.NET на коробке Sharepoint 2007, которая выполняет вызов веб-службы Sharepoint для получения местоположения документа (в частности, метода GetListItems).
Служба используется с переданными учетными данными действительной учетной записи Sharepoint с соответствующими разрешениями.
ListServiceWrapper listService = new ListServiceWrapper();
/*Pass credentials to service call object*/
listService.Credentials = new NetworkCredential(spUserName, spPassword, spDomain);
/*Set the Url property of the service for the path to a subsite.*/
listService.Url = ConfigurationManager.AppSettings.Get("rootSite") + "/_vti_bin/lists.asmx";
Когда веб-приложение запускается локально на моем компьютере для разработки (я пользователь Sharepoint в том же домене), сервисный вызов прекрасно работает. При развертывании в окне Sharepoint приложение возвращает:
Запрос не выполнен с HTTP-статусом
401: Несанкционированный.
Мы пытались изменить пользователя пула приложений веб-приложения на коробке Sharepoint на авторизованного пользователя Sharepoint, но все еще не повезло. Я полагаю, что если мы изменим аутентификацию Sharepoint на Kerberos вместо NTLM, это решит проблему. К сожалению, это не вариант здесь. Возможно, это как-то связано с проблемой двойного прыжка NLTM?