如何为SPItem授予SPGroup权限?

Den*_*s G 5 c# permissions visual-studio-2010 sharepoint-2010

我试图找到一个简单的例子,如何为列表项Z提供一个特定的Sharepoint组X,一个权限级别Y,但是找不到示例代码.

我可以为项目分配特定用户权限(在本例中为"Reader")的最短代码如下:

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();
Run Code Online (Sandbox Code Playgroud)

我知道也SPRoleAssignment.Add可以采取一个SPPrincipal反过来是一个团体 - 我只是不知道怎么写它.

请给我一些示例代码,了解如何将具有"Reader"权限级别的现有Sharepoint组(例如"MyGroup")添加到我的项目中.

Den*_*s G 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();
Run Code Online (Sandbox Code Playgroud)