努力设置listitem的权限......一切似乎都运行正常..没有错误..但是当检查sharepoint上的文档时...我没有设置我添加的权限组。
知道我错过了什么吗?
sharepoint dev是一场真正的噩梦!
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);
}
}
}
}
感谢
答案 0 :(得分:0)
好吧我通过在类级别而不是方法上设置客户端上下文来解决此问题。 我不确定在listitem和ctx之间是否存在某种绑定..但是当我从另一个方法(也在ctx周围使用)返回listitem并将其传递给此权限方法时... listitem似乎失去了它的联系。