2014年5月27日火曜日

【CSOM】SharePointグループの権限を削除

「GroupA」という名前のSharePointグループに付与された権限を削除します。

// サイトの権限一覧を取得
RoleAssignmentCollection RoleColl = _web.RoleAssignments;

// SharePointサイトに接続
context.Load(RoleColl);
context.ExecuteQuery();

foreach (RoleAssignment oRoleAssignment in RoleColl)
{
    // 権限のMemberを取得
    context.Load(oRoleAssignment.Member);
    context.ExecuteQuery();

    // SharePointグループの権限を削除
    if (oRoleAssignment.Member.Title == "GroupA")
    {
        oRoleAssignment.DeleteObject();
    }
}

// 変更をアップデート
_web.Update();
context.ExecuteQuery();

一度、ExecuteQueryを実行しないと、
RoleAssignmentを参照できないのが、何となく嫌ですね。
何か方法が無いのでしょうか。