Доступ к списку SharePoint через пулы приложений - PullRequest
1 голос
/ 15 мая 2009

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

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

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

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

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

К счастью, принимаются любые мысли, идеи или решения!

Phill

Ответы [ 3 ]

6 голосов
/ 15 мая 2009

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

1 голос
/ 04 июня 2009

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

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

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

Http: ///_admin/FarmCredentialManagement.aspx

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

1 голос
/ 15 мая 2009

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

...