Вопрос

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

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

  2. Страница веб -части/приложения - нет проблем с расщеплением форм, так как мы находимся в контексте SharePoint, однако я пытался использовать RunWitelevatedPrivileges, но я все еще получаю отрицание доступа при вызове Spwebbapplication.sites.add (), даже если все spsite и spweb pbjects являются создание создания внутри повышенного кодового блока. Я пробовал прямое подражание на уровне пользовательского интерфейса, и я получаю UnkelledledException, говоря, что подражание не удалось.

  3. Обертка приложения вокруг STSADM - я еще не пытался это сделать, поскольку я обеспокоен жизнеспособностью этого подхода, конечно, есть более чистый путь, чем этот?

Некоторое руководство по этому поводу было бы полезно, так как я не могу найти многое в этом.

Спасибо

Это было полезно?

Решение

Проблема в том, что вы не можете использовать RWEP для создания коллекции сайтов. RWEP берет личность пула приложений и, скорее всего, (если вы правильно настроили свою ферму), эта учетная запись не является членом группы Adminstrators Farm, которая требуется для создания коллекции сайтов. Если вы запустите код в центральном администраторе, он будет работать, поскольку он берет личность пула приложений CA, который является фермерским администратором.

Таким образом, у вас есть ряд параметров для создания этой функции:

  1. Вы можете предоставить Admin Farm Admin на свою учетную запись пула приложений и продолжить в качестве обычно - не рекомендуется!
  2. Создайте веб -приложение в центральном администраторе для создания этих сайтов - не рекомендуется, вы не хотите подвергать CA своим пользователям
  3. Создайте задание таймера (работая в качестве фермерского администратора), а затем добавьте свой «Запрос сбора сайтов» в список, который проверяет задание таймера. Затем задание таймера создает Coll Site Coll, и в конечном итоге, когда он создан, отправляет электронное письмо пользователю, который запросил сайт Coll. Это будет небольшая задержка (в зависимости от того, как часто работает задание таймера) до тех пор, пока пользователь не получит свой сайт.
  4. Создайте веб -сервис в CA, который делает сайт Coll. Затем вызовите эту веб -службу из вашего пользовательского кода.

Я использовал два последних подхода успешного.

/Ww

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top