Автоматизация создания семейства сайтов в SharePoint - PullRequest
2 голосов
/ 23 октября 2009

UPDATE

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

В ответ на комментарий это код, который я использую для создания нового семейства сайтов:

Dim newSite As SPSite = webApp.Sites.Add( _
    txtWebApp.Text & "/cg/" & strURL, txtName.Text, txtDesc.Text, 1033, "SITEDEF#0", _
    "DOMAIN\ACCOUNT", "NAME", "EMAIL", _
    "DOMAIN\ACCOUNT", "NAME", "EMAIL")

и да "SITEDEF # 0" - это совершенно правильное определение сайта.

Надеюсь, я преодолел эту проблему, используя страницу приложения, которая доступна в качестве элемента в меню «Действия сайта» (только для администраторов сайта). Используя подражание, я могу успешно инициировать этот процесс. Есть некоторые дополнительные проблемы, которые я выделил в другом вопросе.

ОРИГИНАЛЬНЫЙ ВОПРОС

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

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

  2. Страница веб-частей / приложений - здесь нет проблем с дайджестом форм, так как мы находимся в контексте SharePoint, однако я попытался использовать RunWithElevatedPrivileges, но мне все равно отказано в доступе при вызове SPWebbApplication.Sites.Add (), хотя все объекты SPSite и SPWeb создаются внутри блока кода с повышенными правами. Я пробовал прямое олицетворение на уровне пользовательского интерфейса и получаю исключение UnhandledException о том, что олицетворение не удалось.

  3. Application Wrapper Around stsadm - я еще не пытался это сделать, так как меня беспокоит жизнеспособность этого подхода, наверняка есть более чистый способ, чем этот?

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 11 января 2010

Я бы пошел на номер 2. Этот код должен работать, возможно, код олицетворения не является правильным? Вы не можете использовать SPContext, как обычно, например.

Кроме того, вы повышаете до удостоверения пула приложений вашего сайта SharePoint. Достаточно ли у этой учетной записи прав для создания коллекций сайтов? Вы можете проверить это в центре администрирования> Управление приложениями> Политика для веб-приложений.

0 голосов
/ 26 октября 2009

Я бы выбрал вариант № 1. Вероятно, это проблема авторизации. Как вы получаете доступ к SharePoint? с помощью SDK или через его веб-сервисы?

...