3

我正在开发一个 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 网站中的“网站设置”并打开“网站集管理员”列表时,我确实看到该用户列为网站集管理员。

一切似乎都很好。现在,当我使用相同的用户名(刚刚添加此网站集管理员列表的用户)打开此站点时,我收到消息:

抱歉,该网站尚未与您共享。

除了让用户成为“网站集管理员”之外,我们还需要做些什么我在这里缺少的任何其他设置?

4

1 回答 1

0

我怀疑这可能与用户身份在 SharePoint 内容数据库中的存储方式有关。您是否尝试过检查现有用户以准确查看用户名属性中存储的内容?

我博客上的这个页面可能相关也可能不相关,但它描述了基于表单的用户如何在 SharePoint 对象模型中非常奇怪地存储......

于 2012-12-20T23:20:08.553 回答