2010-04-21 59 views
1

下面是這種情況..分配集團的許可文檔庫

===== scanario 1個===== 1.文檔庫「Gatorate經典」 2.我有四組。 集團阿爾法 - 角色 - 讀 組β - 角色 - 編輯 集團Epselon - 角色 - 編輯 集團伽馬 - 角色 - 編輯

===== scanario 2 ===== 1.文檔庫「 Gatorate G2「 2.我有四組。 集團阿爾法 - 角色 - 編輯 組β - 角色 - 讀 集團Epselon - 角色 - 編輯 集團伽馬 - 角色 - 讀


我想請點擊此鏈接,但http://www.csharpest.net/?p=74,但我不認爲這是我的解。有沒有人有這樣的情景。同一組,但不同級別的訪問。

回答

1

我有一些東西,我改變了文檔庫(與頁面)的權限級別 但我有不同的需要,所以我建立了頁面的權限。

  string groupname = "Group Alpha"; 
      SPWeb web = getSPWeb(); 
      web.AllowUnsafeUpdates = true; 
      SPGroup grupo = web.Groups[groupname]; 
      SPFile arq = null; 
      SPFolder pasta = web.GetFolder("pages"); 
      arq = pasta.Files["page1.aspx"]; 

      if (arq.InDocumentLibrary) 
      { 
       SPListItem item = arq.Item; 
       if (!item.HasUniqueRoleAssignments) 
        item.BreakRoleInheritance(false); 
       SPRoleAssignmentCollection roles = item.RoleAssignments; 
       while (roles.Count > 0) 
        roles.Remove(0); 

       SPRoleAssignment atrib1 = new SPRoleAssignment(web.Groups[groupname] as SPPrincipal); 
       atrib1.RoleDefinitionBindings.Add(web.RoleDefinitions.GetByType(SPRoleType.Administrator)); 
       roles.Add(atrib1); 

      } 
      web.AllowUnsafeUpdates = false; 

希望這可以幫助你。

+0

謝謝加布裏埃爾,我當然可以你的代碼。再次感謝 – Axiom 2010-04-21 18:32:10

+0

我不斷收到以下錯誤消息。 該操作在繼承權限的對象上不被允許。 我添加了這一行,現在錯誤消失了,並且添加了針對所添加的任何角色的文檔庫。 webSite.BreakRoleInheritance(true); 感謝加比...... – Axiom 2010-04-21 19:41:29

+0

您可能應該只打破庫中的角色繼承,您可以通過檢查HasUniqueRoleAssignments布爾屬性來檢查角色繼承是否已經被破壞。如果你違反角色繼承傳遞true,它將複製已經存在的特權,如果你不希望複製對象上的特權,你應該傳遞false。 – 2010-04-21 21:24:29