我试图找到一个简单的示例,如何为列表项Z提供某个Sharepoint组X,一个权限级别Y,但找不到示例代码。
我可以为项目分配特定的用户权限(本例中为“阅读器”)的最短代码如下:
SPRoleDefinition spRole = spWeb.RoleDefinitions["Reader"];
SPRoleAssignment roleAssignment= new SPRoleAssignment("//myDomain/myUser",
"none@example.org",
"Name", "Notes");
roleAssignment.RoleDefinitionBindings.Add(spRole);
SPListItem listItem = spWeb.GetListItem("http://<URL to item somewhere on the Site>");
listItem.BreakRoleInheritance(true);
listItem.RoleAssegnments.Add(roleAssignment);
listItem.Update();
我知道SPRoleAssignment.Add
也可以SPPrincipal
依次is a group - 我只是不知道如何写它。
请给我一些示例代码,了解如何将具有“Reader”权限级别的现有Sharepoint组(例如“MyGroup”)添加到我的项目中。
答案 0 :(得分:11)
实际上它很容易 - 而不是SPRoleAssignment("user","name"...)
我可以在角色分配中添加SPGroup
而且它有效!完整代码如下:
//note: using SiteGroups is "safer",
//because also groups which don't yet have any permissions are included
SPGroup spGroup = spWeb.SiteGroups["MyGroup"];
SPRoleDefinition spRole = spWeb.RoleDefinitions["Read"];
SPRoleAssignment roleAssignment= new SPRoleAssignment(spGroup);
roleAssignment.RoleDefinitionBindings.Add(spRole);
SPListItem listItem = spWeb.GetListItem("http://<URL to item somewhere on the Site>");
listItem.BreakRoleInheritance(true);
listItem.RoleAssignments.Add(roleAssignment);
listItem.Update();