【问题标题】:Sharepoint Online - How to set item list visibilitySharepoint Online - 如何设置项目列表可见性
【发布时间】:2022-01-18 20:17:57
【问题描述】:

我正在准备一项将 sharepoint-online 与 SQL 数据对齐的小型服务。

关于某些列表,我必须配置项目的可见性,以确保它们仅对特定用户(以及任何默认组)可见(可编辑)。

我正在使用以下代码,

User usr1 = this.uc.FirstOrDefault(x => x.Title.ToUpper() == oo.ToString().ToUpper());
if (usr1 != null)
{
    RoleDefinitionBindingCollection collRoleDefinitionBinding = new RoleDefinitionBindingCollection(Context);
    RoleDefinition oRoleDefinition = Context.Web.RoleDefinitions.GetByType(RoleType.Editor);
    collRoleDefinitionBinding.Add(oRoleDefinition);
    Principal pa = usr1 as Principal;
    rac.Add(pa, collRoleDefinitionBinding);
}

但它总是会产生以下错误

对象在与对象关联的上下文不同的上下文中使用。

你能帮帮我吗?

Ciao 大卫

【问题讨论】:

标签: c# sharepoint-online


【解决方案1】:

可以参考下面的代码来管理用户权限

foreach(var grpUser in grpUsers)
{
    Principal user = ctx.Web.SiteUsers.GetByLoginName(grpUser);

    RoleDefinition writeDefinition = ctx.Web.RoleDefinitions.GetByName("Edit");
    RoleDefinitionBindingCollection roleDefCollection = new RoleDefinitionBindingCollection(ctx);
    roleDefCollection.Add(writeDefinition);
    RoleAssignment newRoleAssignment = ctx.Web.RoleAssignments.Add(grpUser, roleDefCollection);
}

ctx.ExecuteQuery();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2013-12-07
    • 2021-10-16
    • 2019-12-18
    • 1970-01-01
    相关资源
    最近更新 更多