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