CSOM 授予对 SharePoint 列表上的组的编辑权限
CSOM give edit permissions to group on SharePoint list
我正在 CSOM 中为 SharePoint Online 创建一个新列表,但我对此很陌生,所以我一直在更改权限。
有3个用户组,所有者,访客和成员。我想授予访问者对此列表的编辑权限。
我已经设法打破继承并使用以下代码获取所有访问者,但我仍然不知道如何给他们新的权限
newList.BreakRoleInheritance(false, true);
var visitors = ctx.Web.SiteGroups;
ctx.Load(visitors, groupitems => groupitems.Include(groupitem => groupitem.Title,
groupitem => groupitem.LoginName).Where(groupitem=> groupitem.Title == visitorsGroupName));
您可以执行与此类似的操作:
foreach(var grpUser in grpUsers)
{
Principal user = ctx.Web.SiteUsers.GetByLoginName(grpUser);
RoleDefinition writeDefinition = ctx.Web.RoleDefinitions.GetByName("Edit");
RoleDefinitionBindingCollection roleDefCollection = new RoleDefinitionBindingCollection(ctx);
roleDefCollection.Add(writeDefinition);
RoleAssignment newRoleAssignment = ctx.Web.RoleAssignments.Add(grpUser, roleDefCollection);
}
ctx.ExecuteQuery();
这假设有一个 "Edit" 权限级别,默认情况下在 SharePoint 中可用。让我知道它是否有效。
你可以试试这个
var EditRole= new RoleDefinitionBindingCollection(ctx);
EditRole.Add(ctx.Web.RoleDefinitions.GetByType(RoleType.Editor));
Microsoft.SharePoint.Client.Group visitors= ctx.Web.SiteGroups.GetByName("visitors");
ctx.Load(visitors);
newList.RoleAssignments.Add(visitors, EditRole);
ctx.ExecuteQuery()
我正在 CSOM 中为 SharePoint Online 创建一个新列表,但我对此很陌生,所以我一直在更改权限。 有3个用户组,所有者,访客和成员。我想授予访问者对此列表的编辑权限。
我已经设法打破继承并使用以下代码获取所有访问者,但我仍然不知道如何给他们新的权限
newList.BreakRoleInheritance(false, true);
var visitors = ctx.Web.SiteGroups;
ctx.Load(visitors, groupitems => groupitems.Include(groupitem => groupitem.Title,
groupitem => groupitem.LoginName).Where(groupitem=> groupitem.Title == visitorsGroupName));
您可以执行与此类似的操作:
foreach(var grpUser in grpUsers)
{
Principal user = ctx.Web.SiteUsers.GetByLoginName(grpUser);
RoleDefinition writeDefinition = ctx.Web.RoleDefinitions.GetByName("Edit");
RoleDefinitionBindingCollection roleDefCollection = new RoleDefinitionBindingCollection(ctx);
roleDefCollection.Add(writeDefinition);
RoleAssignment newRoleAssignment = ctx.Web.RoleAssignments.Add(grpUser, roleDefCollection);
}
ctx.ExecuteQuery();
这假设有一个 "Edit" 权限级别,默认情况下在 SharePoint 中可用。让我知道它是否有效。
你可以试试这个
var EditRole= new RoleDefinitionBindingCollection(ctx);
EditRole.Add(ctx.Web.RoleDefinitions.GetByType(RoleType.Editor));
Microsoft.SharePoint.Client.Group visitors= ctx.Web.SiteGroups.GetByName("visitors");
ctx.Load(visitors);
newList.RoleAssignments.Add(visitors, EditRole);
ctx.ExecuteQuery()