C# CSOM集合“;将默认组设为“组”;
在CSOM(C#)中,我正在创建一个子网站,并为所有者、成员和访问者创建SharePoint组 访客应为共享时的默认组。在界面中,您可以通过在“组设置”下选择“创建默认组”,将访客组设置为默认 但在CSOM中如何做到这一点 这是我当前创建组的代码C# CSOM集合“;将默认组设为“组”;,c#,sharepoint,csom,sharepoint-online,C#,Sharepoint,Csom,Sharepoint Online,在CSOM(C#)中,我正在创建一个子网站,并为所有者、成员和访问者创建SharePoint组 访客应为共享时的默认组。在界面中,您可以通过在“组设置”下选择“创建默认组”,将访客组设置为默认 但在CSOM中如何做到这一点 这是我当前创建组的代码 private void SetSecurity(Web web) { CreateGroup($"Besøgende på {web.Title}", $"Denne gruppe giver læserettighe
private void SetSecurity(Web web)
{
CreateGroup($"Besøgende på {web.Title}", $"Denne gruppe giver læserettighed til {web.Title} sitet", AssociatedGroup.Vistors, web);
CreateGroup($"Medlemmer af {web.Title}", $"Denne gruppe giver skriverettighed til {web.Title} sitet", AssociatedGroup.Members, web);
CreateGroup($"Ejere af {web.Title}", $"Denne gruppe giver fuld kontrol til {web.Title} sitet", AssociatedGroup.Owners, web);
SpClientContext.ExecuteQuery();
}
private enum AssociatedGroup
{
Owners,
Members,
Vistors
}
private void CreateGroup(string title, string description, AssociatedGroup associatedGroup, Web web)
{
var groupCreation = new GroupCreationInformation();
groupCreation.Title = title;
groupCreation.Description = title;
var group = web.SiteGroups.Add(groupCreation);
var collRoleDefinitionBinding = new RoleDefinitionBindingCollection(SpClientContext);
switch (associatedGroup)
{
case AssociatedGroup.Owners:
web.AssociatedOwnerGroup = group;
web.AssociatedOwnerGroup.Update();
var adminRoleDefinition = web.RoleDefinitions.GetByType(RoleType.Administrator);
collRoleDefinitionBinding.Add(adminRoleDefinition);
break;
case AssociatedGroup.Members:
web.AssociatedMemberGroup = group;
web.AssociatedMemberGroup.Update();
var contributerDefinition = web.RoleDefinitions.GetByType(RoleType.Contributor);
collRoleDefinitionBinding.Add(contributerDefinition);
break;
case AssociatedGroup.Vistors:
web.AssociatedVisitorGroup = group;
web.AssociatedVisitorGroup.Update();
var vistorDefinition = web.RoleDefinitions.GetByType(RoleType.Reader);
collRoleDefinitionBinding.Add(vistorDefinition);
break;
}
web.RoleAssignments.Add(group, collRoleDefinitionBinding);
group.Update();
web.Update();
}
我曾尝试将访问者组设置为AssociatedMemberGroup,但没有给出正确的结果,因为在UI中共享时,它将映射到“可以编辑”选项
case AssociatedGroup.Vistors:
//web.AssociatedVisitorGroup = group;
web.AssociatedMemberGroup = group;
web.AssociatedMemberGroup.Update();
var vistorDefinition = web.RoleDefinitions.GetByType(RoleType.Reader);
collRoleDefinitionBinding.Add(vistorDefinition);
break;
那么,关于如何在CSOM中在共享时将访问者组标记为默认组,有什么建议吗?下面的示例演示了如何使用CSOM API设置默认组:
public static void SetDefaultGroup(Group group)
{
var ctx = group.Context as ClientContext;
ctx.Web.AssociatedMemberGroup = group;
ctx.Web.Update();
ctx.ExecuteQuery();
}
用法
以下示例演示如何使用CSOM API设置默认组:
public static void SetDefaultGroup(Group group)
{
var ctx = group.Context as ClientContext;
ctx.Web.AssociatedMemberGroup = group;
ctx.Web.Update();
ctx.ExecuteQuery();
}
用法
正如你在我的帖子中看到的,我已经试过了。检查图像:问题是AssociatedMemberGroup似乎链接到UI中的“可以编辑”。我希望访问者组成为我的默认组。谢谢@Vadim!正如你在我的帖子中看到的,我已经试过了。检查图像:问题是AssociatedMemberGroup似乎链接到UI中的“可以编辑”。我希望访问者组成为我的默认组。谢谢@Vadim!