首页 > 解决方案 > 用户不会被添加到 SharePoint 子网站组,他们会被添加到网站集级别组

问题描述

我必须使用 CSOM 将用户添加到 SharePoint 在线子站点的成员和所有者组中。我为此使用了子站点的上下文。下面的方法用于获取组名,我将 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

标签: c#sharepoint-onlinecsom

解决方案


默认情况下,sharePoint 子站点使用与父站点相同的权限。因此,子网站使用与网站集级别组相同的组。将用户添加到子网站组等同于将用户添加到网站集级别组。

您可以删除子站点中的 uqiue 权限并为子站点创建新组。

在此处输入图像描述

在此处输入图像描述


推荐阅读