Я должен добавить пользователей в группы участников и владельцев субсайта SharePoint онлайн с помощью CSOM. Я использую контекст сайта для этого. Приведенный ниже метод используется для получения имени группы, я передаю Owners / Members в качестве имени группы и затем добавляю его в группу, возвращаемую по методу ниже, но всегда добавляю в группы уровня семейства сайтов:
private async Task<Group> GetGroupOrDefaultAsync(ClientContext context, Constants.SPDefaultGroup spDefaultGroup)
{
Group group = null;
string groupName = string.Empty;
switch (spDefaultGroup)
{
case Constants.SPDefaultGroup.Members:
groupName = Common.Configuration.Constants.MatterCustomMemberGroup;
if (string.IsNullOrWhiteSpace(groupName))
{
group = context.Web.AssociatedMemberGroup;
}
break;
case Constants.SPDefaultGroup.Owners:
groupName = Common.Configuration.Constants.MatterCustomOwnerGroup;
if (string.IsNullOrWhiteSpace(groupName))
{
group = context.Web.AssociatedOwnerGroup;
}
break;
case Constants.SPDefaultGroup.Visitors:
groupName = Common.Configuration.Constants.MatterCustomVisitorGroup;
if (string.IsNullOrWhiteSpace(groupName))
{
group = context.Web.AssociatedVisitorGroup;
}
break;
}
if (group == null)
{
if (!string.IsNullOrWhiteSpace(groupName))
{
// get group by name configured in the web.config
group = await GetGroupByNameAsync(context, groupName);
}
else
{
_logger.Error(new Exception($"Sharepoint Group not found. Searching group for {spDefaultGroup.ToString()}"), "SharePointService.AssignPeopleToGroup error.");
}
}
return group;
}
Code to add user:
var user = context.Web.EnsureUser(name);
group.Users.AddUser(user);
await context.ExecuteQueryRetryAsync();
enter code here