Как программно установить пользователя в качестве администратора семейства сайтов в SharePoint
Я работаю над сайтом SharePoint 2013. Я пытаюсь назначить пользователя администратором семейства сайтов, используя следующий код:
public void SetUserSiteCollectionAdmin(string siteUrl, string strUserName, string strEmail, string fullName)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(siteUrl))
{
using (SPWeb web = site.RootWeb)
{
web.AllowUnsafeUpdates = true;
web.AllUsers.Add(strUserName, strEmail, fullName, null);
SPUser spUser = web.SiteUsers[strUserName];
spUser.IsSiteAdmin = true;
spUser.Update();
web.AllowUnsafeUpdates = false;
}
}
});
}
Когда я захожу в "Параметры сайта" на своем сайте SharePoint 2013 и открываю список "Администраторы семейства сайтов", я вижу этого пользователя в списке администраторов семейства сайтов.
Все вроде хорошо. Теперь, когда я открываю этот сайт под тем же именем пользователя (который только что добавил этот список администраторов семейства сайтов), я получаю сообщение:
Извините, этот сайт не был предоставлен вам.
Что еще нужно сделать, кроме как сделать пользователя "Администратором семейства сайтов" другими настройками, которые мне здесь не хватает?
1 ответ
Я подозреваю, что это может быть связано с тем, как идентификационные данные пользователей хранятся в базе данных контента SharePoint. Вы пытались изучить существующих пользователей, чтобы точно узнать, что хранится в свойстве username?
Эта страница в моем блоге может быть или не быть связанной, но она описывает, как пользователи на основе форм довольно странно хранились в объектной модели SharePoint...