我有一些東西,我改變了文檔庫(與頁面)的權限級別 但我有不同的需要,所以我建立了頁面的權限。
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;
希望這可以幫助你。
謝謝加布裏埃爾,我當然可以你的代碼。再次感謝 – Axiom 2010-04-21 18:32:10
我不斷收到以下錯誤消息。 該操作在繼承權限的對象上不被允許。 我添加了這一行,現在錯誤消失了,並且添加了針對所添加的任何角色的文檔庫。 webSite.BreakRoleInheritance(true); 感謝加比...... – Axiom 2010-04-21 19:41:29
您可能應該只打破庫中的角色繼承,您可以通過檢查HasUniqueRoleAssignments布爾屬性來檢查角色繼承是否已經被破壞。如果你違反角色繼承傳遞true,它將複製已經存在的特權,如果你不希望複製對象上的特權,你應該傳遞false。 – 2010-04-21 21:24:29