У меня есть требование, при котором мне нужно иметь доступ к списку, который находится в центре администрирования, со страницы приложения, которая находится на моем веб-интерфейсе (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, но, кажется, поднимается только до уровня пула приложений.
Я надеюсь, что есть простой способ олицетворять пул приложений веб-приложения администратора, но пока не удалось найти способ сделать это ... Или измените идентификатор процесса на тот, у которого есть доступ
С благодарностью принимаются любые мысли, идеи или решения!
Фил