История вопроса заключается в том, что моей текущей задачей является разработка страницы приложения, которая позволяет пользователям создавать семейства сайтов.Свойства семейства сайтов читаются из элемента списка.Мое решение работает в большинстве случаев.Тем не менее, существует одна конфигурация идентификаторов пула приложений, в которой он генерирует отказ в доступе, и я хотел бы понять, почему это происходит.
(очень) урезанная версия моего кода выглядит так:
SPSecurity.RunWithElevatedPrivileges(delegate { try
{
SPWebApplication webApp = this.Web.Site.WebApplication;
SPSiteCollection siteColl = webApp.Sites;
SPSite newSite = siteColl.Add(mngPath + siteUrl, siteName, siteDesc, LocaleId,
null, primarySiteAdmin, String.Empty,
String.Empty));
});
UnauthorizedAccessException генерируется, когда идентификаторы задаются следующим образом:
Центр администрирования SharePoint v4 -> localdomain \ adminaccount
SharePoint - 80 -> NetworkService
Все остальные комбинации NetworkService и domain \ adminaccount работают.У кого-нибудь есть объяснение?
ОБНОВЛЕНИЕ
Я предполагаю, что вам необходимо запустить пул приложений sharepoint, используя того же пользователя, что и пул приложений центра администрирования, чтобы иметь достаточные права на БД.Но это по-прежнему не объясняет, почему он работает в следующей конфигурации:
Центр администрирования SharePoint v4 -> NetworkService
SharePoint - 80 -> localdomain \ adminaccount
Кстати, еще один вопрос о SA предоставляет решение (и некоторые подробности проблемы).См. Разрешение на предоставление нового семейства сайтов с помощью рабочего процесса .