Sharepoint Online - 如何设置项目列表可见性

Posted

技术标签:

【中文标题】Sharepoint Online - 如何设置项目列表可见性【英文标题】:Sharepoint Online - How to set item list visibility 【发布时间】: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 大卫

【问题讨论】:

看看以下是否有帮助:docs.microsoft.com/en-us/aspnet/web-forms/overview/… 【参考方案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();

【讨论】:

以上是关于Sharepoint Online - 如何设置项目列表可见性的主要内容,如果未能解决你的问题,请参考以下文章

SharePoint Online 设置网站集

是否有可能仅为 Sharepoint online 创建条件访问策略,不包括其依赖项,如 ms 团队?

Microsoft 365 - 如何设置/修改SharePoint Online Site的Default Time Zone

Microsoft 365 - 如何设置SharePoint Online Site是否可以share external user?

SharePoint Online 开发:修改站点导航宽度和下拉菜单

SharePoint Online 创建列表库