В CSOM (C#) Я создаю дочерний узел и создаю группы SharePoint для владельцев, членов и виртуальных машин.CSOM set «Сделать группу по умолчанию»
Виестры должны быть группой по умолчанию при совместном использовании. В пользовательском интерфейсе вы можете установить Vistors Group по умолчанию, выбрав «Сделать группу по умолчанию» в настройках групп.
Но как вы это делаете в CSOM?
Вот мой текущий код для создания группы
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 но не дают нужного результата, так как в пользовательском интерфейсе при обмене будет отображаться к опции Can Edit.
case AssociatedGroup.Vistors:
//web.AssociatedVisitorGroup = group;
web.AssociatedMemberGroup = group;
web.AssociatedMemberGroup.Update();
var vistorDefinition = web.RoleDefinitions.GetByType(RoleType.Reader);
collRoleDefinitionBinding.Add(vistorDefinition);
break;
http://i.stack.imgur.com/J7Ljt.png
Таким образом, любое предложение о том, как в CSOM я могу отметить Группу посетителей в качестве группы по умолчанию при обмене?
Я уже попробовал, что, как вы можете увидеть в моем посте. Проверьте изображение: http://i.stack.imgur.com/J7Ljt.png Проблема заключается в том, что AssouciatedMemberGroup, похоже, связан с «Can Edit» в пользовательском интерфейсе. Я хочу, чтобы группа посетителей была группой по умолчанию. – Thomas
Работал для меня. Спасибо @ Вадим! –