Проблема NTLM в Sharepoint 2007 с ASP.NET Web App, размещенной на сервере Sharepoint - PullRequest
3 голосов
/ 04 ноября 2008

Я размещаю веб-приложение 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?

1 Ответ

3 голосов
/ 04 ноября 2008

Да, это связано с проблемой двойного прыжка.
В NTLM вам не разрешено проходить аутентификацию на удаленных сервисах. Как вы сказали, вам потребуется Kerberos для делегирования учетных данных другим службам.

Варианты, которые вы можете попробовать:

  • Переключиться на Kerberos. Это единственно правильное решение, но это не так просто, так как вам нужно будет создать все SPN и убедиться, что порт 88 открыт.
  • Установите приложение ASP.Net в поле SharePoint и активируйте DisableLoopbackCheck
  • Используйте учетную запись службы для входа в SharePoint. В этом случае SharePoint не будет работать под учетной записью пользователя, поэтому вам придется самостоятельно управлять безопасностью
...