3

SharePoint2013サイトで作業しています。次のコードを使用して、ユーザーをサイトコレクション管理者として設定しようとしています。

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コンテンツデータベースにユーザーIDがどのように格納されているかに関係しているのではないかと思います。ユーザー名プロパティに何が格納されているかを正確に確認するために、既存のユーザーを調べてみましたか?

私のブログのこのページは、関連している場合と関連していない場合がありますが、フォームベースのユーザーがSharePointオブジェクトモデルに非常に奇妙に格納されている方法について説明しています...

于 2012-12-20T23:20:08.553 に答える