SharePoint列表项权限

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

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

如果有帮助,请将其置于上下文中 – 该列表正在向特定成员注册工作角色。 每个列表项都是一个角色分配,其中包含对角色列表中角色的查找以及对成员列表中成员的查找。 我不是直接在成员列表中使用了一个multilookup字段来获取角色,因为每个角色分配都需要有关它的额外信息,例如描述,开始日期等。 每个角色都有一个管理它的特定用户/组。 我希望它能够在进入这个大的角色分配列表时,用户只能看到他们所担任的角色的角色分配。

建议将不胜感激。

您可以为各个列表项分配权限。 对于前者

// get list item SPListItem item = ; if (!item.HasUniqueRoleAssignments) { item.BreakRoleInheritance(true); } // get principal SPPrincipal principal = ; // get role definition SPRoleDefinition rd = ; // create role assignment SPRoleAssignment ra = new SPRoleAssignment(principal); ra.RoleDefinitionBindings.Add(rd); item.RoleAssignments.Add(ra); 

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

一般来说,我更喜欢

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