sharepoint列表项权限未持久化

本文关键字:持久化 权限 列表 sharepoint | 更新日期: 2023-09-27 17:58:16

正在努力设置列表项的权限。。。一切似乎都很好。。没有错误。。但是在sharepoint上检查文档时。。未设置正在添加的权限组。

知道我错过了什么吗?

sharepointdev真是一场噩梦!

public void SetDocumentPermission(ListItem doc, List<Group> newGroup)
    {
        using (var clientContext = GetNewContext())
        {
            var rdb = new RoleDefinitionBindingCollection(clientContext);
            var rootWeb = clientContext.Web;
            clientContext.Load(rootWeb);
            clientContext.ExecuteQuery();
            foreach (var group in newGroup)
            {
                try
                {
                    var usr = (Principal)group;
                    var roll = rootWeb.RoleDefinitions.GetByType(RoleType.Reader);
                    clientContext.Load(roll);
                    clientContext.ExecuteQuery();
                    rdb.Add(roll);
                    if (!doc.HasUniqueRoleAssignments)
                    {
                        doc.BreakRoleInheritance(true, true);
                    }
                    doc.RoleAssignments.Add(usr, rdb);
                    doc.Update();
                    clientContext.ExecuteQuery();   
                }
                catch (Exception exception)
                {
                    throw new ApplicationException(exception.Message);
                }
            }
        }
    }

感谢

sharepoint列表项权限未持久化

ok我通过在类级别而不是方法级别设置客户端上下文来解决这个问题。我不确定listitem和ctx之间是否有某种绑定。。但是,当我从另一个方法返回listitem时(该方法在ctx周围也有一个用法),并将其传递到这个permissions方法中。。列表项似乎失去了连接。