c# - 用户不会被添加到 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
解决方案
推荐阅读
- python - 如果 CSV 行存在于随机样本中,则更新它
- openstack-keystone - devstack - 如何减少 openstack keystone X-Subject-Token 大小
- c++ - 错误:''无法将'uint8* {aka unsigned int*}'转换为'const emxArray_uint8_T*'?'?
- asynchronous - 将独立的自动化作业与詹金斯管道集成
- google-chrome - captive.apple.com/generate_204 来自 Windows 10 的点击
- javascript - 如何从 MySQL 获取 RowDataPacket 对象?
- reactjs - 如何在不指定道具的情况下将数据传递给孩子
- sas - 在SAS中使用变量名在其他表上添加表
- db2 - DB2如何从两个表中获取多行的不喜欢
- maven - 通过命令行从 Maven 项目(由 Eclipse 开发)运行单个 JUnit 测试套件的问题(可能是错误的搜索路径)