2009-07-01 136 views
5

我想以編程方式讓這個用戶只能看到particuar清單上的項目。SharePoint列表項權限

基本上在創建項目時運行的工作流程中,我將執行一些操作並通知一些人關於此項目的信息。我還希望它更改項目上的權限,以便只有特定用戶(根據項目內容在運行時查找)才能讀取該項目。其他有權訪問該列表的用戶只會看到特定的項目,但不是全部。列表項不一定擁有,但是需要看到它,所以我不能設置列表權限,讓用戶只看到自己的物品的用戶(一個或多個)。

要把它放到上下文如果helps-名單登記工作角色的特定成員。每個列表項都是一個角色分配,其中包含角色列表中角色的查找以及成員列表中成員的查找。我沒有直接使用在成員列表中的multilookup場的角色,因爲每個角色分配需要保持它如說明,開始日期ECT額外信息。 每個角色都有一個特定的用戶/組來管理它。我想它,以便將角色分配這個大名單時,用戶只能看到角色分配的,他們的管理者的角色。

意見,將不勝感激。

回答

10

您可以將權限分配給單個列表項。例如。

 // 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); 

但要小心每個列表項目分配權限的性能和操作含義。

一般情況下,我寧願

  • 權限分配不超過列表級別
  • 儘可能更深,將權限分配給組,然後包括個人用戶到這些組中。
+0

此問題/答案可能有所幫助:http://stackoverflow.com/questions/1058232 – 2009-07-01 15:06:06