无法使用空的角色定义绑定集合添加角色分配

 人丁红星 发布于 2023-02-13 14:41

我试图授予在SharePoint 2013中使用ClientContext的用户权限。我所做的所有操作与Microsoft网站http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.client中的操作完全相同。角色定义绑定集合.add.aspx

但是最后,这部分代码始终返回异常“无法添加具有空角色定义绑定集合的角色分配”:

RoleAssignment oRoleAssignment = w.RoleAssignments.Add(oUser, roleDefBinding);                            
clientContext.ExecuteQuery();

我搜索了网络,发现与其他一些用户类似的问题,但没有任何答复。有任何想法吗?

我的代码:

clientContext.Load(w.RoleDefinitions);
clientContext.ExecuteQuery();
var role = w.RoleDefinitions.Where(r => r.Name == roleName);
if (role.Count() > 0)
{
       RoleDefinition roleMSP = role.First();
       clientContext.Load(w.SiteUsers);
       clientContext.ExecuteQuery();
       var user = w.SiteUsers.Where(u=> u.LoginName == "c:0+.w|s-1-5-21-3493872076-3631449775-1555872641-1347");
       if (user.Count() > 0)
       {
             // Create a new RoleDefinitionBindingCollection object.
             RoleDefinitionBindingCollection roleDefBinding = new RoleDefinitionBindingCollection(clientContext);
             roleDefBinding.Add(roleMSP);
             User oUser = user.First() as User;

             clientContext.Load(w.RoleAssignments);
             clientContext.ExecuteQuery();

             RoleAssignment oRoleAssignment = w.RoleAssignments.Add(oUser, roleDefBinding);                            
             clientContext.ExecuteQuery();//Here I get an exception
        }
}

Vahagn Nahap.. 5

解决!删除了以下代码行:

clientContext.Load(w.RoleAssignments);
clientContext.ExecuteQuery();

看起来您不需要检索分配列表,然后添加您的分配列表。

1 个回答
  • 解决!删除了以下代码行:

    clientContext.Load(w.RoleAssignments);
    clientContext.ExecuteQuery();
    

    看起来您不需要检索分配列表,然后添加您的分配列表。

    2023-02-13 14:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有