c# - 无法添加具有空角色定义绑定(bind)集合的角色分配

标签 c# sharepoint sharepoint-2013

我正在尝试向在 SharePoint 2013 中使用 ClientContext 的用户授予权限。我所做的一切与 Microsoft 网站 http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.roledefinitionbindingcollection.add.aspx 中的操作完全相同。

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

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
        }
}

最佳答案

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

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

看起来您不需要检索作业列表并添加您的作业列表。

关于c# - 无法添加具有空角色定义绑定(bind)集合的角色分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20323987/

相关文章:

asp.net - 防止多个用户在 Sharepoint 2010 中编辑同一个列表项

sharepoint - 使用 REST API 更新 wiki 页面

javascript - 从 SharePoint 列表获取列表项时显示进度

c# - 如何使用 json.net 在 POST 请求上进行 asp.net core 模型绑定(bind)?

c# - 隐式转换数组

c# - WCF 服务代理未设置 "FieldSpecified"属性

javascript - 读取存储在 SharePoint 列表中的用户

c# - LINQ - 选择最小值,仅当集合不为空时

jquery - SharePoint ListData.svc "contains"字符串筛选运算符

javascript - 背景变化时的火灾事件