【问题标题】:SharePoint list item permissionsSharePoint 列表项权限
【发布时间】:2010-11-07 08:41:47
【问题描述】:

我想以编程方式实现,以便用户只能看到列表中的特定项目。

基本上,在创建项目时运行的工作流程中,我会做一些事情并通知一些人有关此项目的信息。我还希望它更改项目的权限,以便只有特定用户(根据项目内容在运行时查找)才能读取项目。其他有权访问该列表的用户只会看到特定项目,而不是所有项目。列表项可能不一定归需要查看的用户所有,因此我无法将列表权限设置为只让用户查看自己的项目。

如果有帮助的话,把它放到上下文中 - 该列表正在向特定成员注册工作角色。每个列表项都是一个角色分配,其中包含对角色列表中角色的查找和对成员列表中成员的查找。我没有直接在角色的成员列表中使用多重查找字段,因为每个角色分配都需要有关它的额外信息,例如描述、开始日期等。 每个角色都有一个特定的用户/组来管理它。我想要它,以便在访问这个角色分配的大列表时,用户只能看到他们作为经理的角色的角色分配。

建议将不胜感激。

【问题讨论】:

    标签: c# sharepoint permissions workflow listitem


    【解决方案1】:

    您可以将权限分配给各个列表项。例如。

            // get list item
            SPListItem item = <your list item>;
            if (!item.HasUniqueRoleAssignments)
            {
                item.BreakRoleInheritance(true);
            }
    
            // get principal
            SPPrincipal principal = <principal to grant permissions to>;
    
            // get role definition
            SPRoleDefinition rd = <role that contains the permissions to be granted to the principal>;
    
            // create role assignment
            SPRoleAssignment ra = new SPRoleAssignment(principal);
            ra.RoleDefinitionBindings.Add(rd);
            item.RoleAssignments.Add(ra);
    

    但请注意为每个列表项分配权限的性能和操作影响。

    总的来说,我更喜欢

    • 分配的权限不超过列表级别
    • 尽可能为组分配权限,然后将单个用户包含到这些组中。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    相关资源
    最近更新 更多