Доступ к списку SharePoint через пулы приложений

У меня есть требование, при котором мне нужно иметь доступ к списку, который находится в центре администрирования, со страницы приложения, которая находится на моем веб-интерфейсе (WFE). У меня проблема в том, что пользователь пула приложений для моего WFE не имеет доступа к базе данных SharePoint_AdminContent, поэтому я получаю отказ в доступе, у них обоих есть свои собственные пулы приложений.

В логах показывает следующее:

  • Возврат к процессу идентификации
  • Текущий пользователь до SqlConnection.Open: Имя: SharePointDemo \ SPContentPool SID: S-1-5-20 ImpersonationLevel: Нет
  • Текущий пользователь после SqlConnection.Open: Имя: SharePointDemo \ SPContentPool: S-1-5-20 Уровень олицетворения: Нет
  • Недостаточно прав доступа к базе данных SQL для пользователя SPContentPool в базе данных SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275 на экземпляре SQL Server SPNSQL. Дополнительная информация об ошибках из SQL Server приведена ниже. В разрешении EXECUTE было отказано для объекта «proc_EnumLists», база данных «SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275», схема «dbo».

Я пытался использовать повышенные привилегии, а также метод Дэниела Ларсона (http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!1919.entry), который использует токен пользователя SharePoint \ System, но, кажется, поднимается только до уровня пула приложений.

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

С благодарностью принимаются любые мысли, идеи или решения!

Фил


person Phill Duffy    schedule 15.05.2009    source источник


Ответы (3)


Проблема в том, что пул приложений CA и пул приложений WFE, скорее всего, работают под разными учетными записями, что является оптимальной практикой, хотя и раздражает, когда вы разработчик. Для решения этой проблемы с помощью SPSecurity.RunWithElevatedPrivileges вы не можете выполнить какое-либо количество повышающих привилегий.

Если ваша политика безопасности позволяет это, вы можете предоставить пулу приложений, который запускает ваше веб-приложение WFE, те же учетные данные, что и пулу приложений центра администрирования.

Это можно сделать с помощью экрана «Учетные записи служб» по адресу:

http: ///_admin/FarmCredentialManagement.aspx

Если вы идете по маршруту веб-службы, вы можете захотеть использовать свою собственную веб-службу, чтобы предотвратить слишком много «разговоров» по ​​HTTP.

person Jeroen Ritmeijer    schedule 04.06.2009
comment
В зависимости от точного необходимого разрешения добавление учетной записи службы WFE в политики централизованного администратора / управления приложениями / веб-приложений с помощью системы «Учетная запись» может решить проблему без необходимости изменения учетных записей служб. - person Tom Clarkson; 06.01.2011

Вам следует попробовать использовать веб-службу List для доступа к элементам списка. И установите учетные данные перед подключением к веб-службе.

person Sergiu    schedule 15.05.2009

Вы пробовали обычное олицетворение окон?? Вероятно, вы сможете выдать себя за учетную запись службы и таким образом получить доступ к списку.

person Kit Menke    schedule 15.05.2009
comment
Привет, Кит! Мы попробовали олицетворение Windows, но не смогли заставить его работать успешно, тем не менее, спасибо за ваш ответ. п - person Phill Duffy; 27.05.2009