Чтение / запись из / в хранилище иерархических объектов - SharePoint 2007 - PullRequest
2 голосов
/ 30 декабря 2010

Я создал специальное задание таймера, для запуска которого требуются некоторые настройки. Я пытаюсь сохранить конфигурации как SPPersistedObject в хранилище иерархических объектов.

Хранилище иерархических объектов сохраняется в базе данных конфигурации SharePoint, и поэтому я получаю «Ошибка безопасности» при попытке сохранить его с SPWebApplication в качестве родительского.

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

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

Как вы обнаружили, иерархическое хранилище объектов (HOS) хранится в базе данных конфигурации, а не в базе данных контента.

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

Это немного глупо, так как вы, вероятно, не увидите этого при установке для разработчика (так как вы, вероятно, не настроите его с учетными записями на уровне домена для пулов приложений, только NETWORK SERVICE), и вы это сделаететолько отключиться, когда вы приступите к работе.

Примечание. Использование SPSecurity.RunWithElevatedPrivileges не изменит этого, поскольку это повысит уровень учетной записи ограниченного пользователя до учетной записи пула приложений, а не учетной записи пула приложений центрального администратора.

В статье Управление состоянием приложения дается разбивка опций и говорится о модели безопасности HOS

- пользователям требуются права администратора дляполучить доступ к связанному объекту SharePoint (например, SPFarm или SPWebApplication).

По этим причинам Я думаю, что HOS очень ограничен в реальном мире, и вам лучше использовать Property Bag Storageмодель , которая может хранить настройки на уровне фермы / веб-приложения / сайта и списка: -

объявлениеПреимущества - это, пожалуй, самый легкий и простой в использовании из всех вариантов конфигурации хранилища.

Также сообщается о преимуществах производительности и стабильности .

На самом деле Библиотека указаний MSDN SharePoint также использует хранилище Property Bag дляих реализация иерархическая Configuration Manager .

0 голосов
/ 30 декабря 2010

Пожалуйста, следуйте приведенной ниже статье, которая может помочь вам http://www.bluedoglimited.com/SharePointThoughts/ViewPost.aspx?ID=271

, а также проект на codeplex

http://features.codeplex.com/

...