如何为SPItem授予SPGroup权限?

我试图找到一个简单的例子,如何为列表项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://"); listItem.BreakRoleInheritance(true); listItem.RoleAssegnments.Add(roleAssignment); listItem.Update(); 

我知道SPRoleAssignment.Add也可以采用SPPrincipal ,而SPPrincipal又是一个组 – 我只是不知道怎么写它。

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

实际上它很容易 – 而不是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://"); listItem.BreakRoleInheritance(true); listItem.RoleAssegnments.Add(roleAssignment); listItem.Update();