我正在使用SharePoint对象模型以编程方式创建新网站(使用自定义Web部件)。它工作正常,但我想知道是否有可能为组授予权限?
当我创建网站时,我将其设置为不继承权限
newWeb = SPContext.GetContext(HttpContext.Current).Web.Webs.Add(siteUrl, siteName, siteDescription, (uint)1033, siteTemplate, true, false);
在GUI中我可以转到网站操作(在新创建的网站上) - >授予权限 - >搜索父站点中的组,然后为该组授予权限。因此,在父网站中,myGroup可以拥有完全访问权限,但在此网站中我可以将其设置为Contribution或其他任何内容。是否可以在创建网站时或在(以编程方式)之后执行此操作?
提前致谢。
答案 0 :(得分:2)
您必须为您的群组指定角色定义。
这是我编写的代码片段,用于分配预定义的sharepoint角色定义之一。
public bool AssignExistingGroupToWeb(SPWeb siteWeb, string GroupName, SPRoleDefinition roleDefinition)
{
//retrieve a group
SPGroup siteGroup = siteWeb.SiteGroups.FindGroupByName(GroupName);
//create a role assignment for the group using the specified SPRoleDefinition
//examples of roles as "Full Control", "Design", etc...
SPRoleAssignment roleAssignment = new SPRoleAssignment(siteGroup);
roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
siteWeb.RoleAssignments.Add(roleAssignment);
siteWeb.Update();
}
您可以通过访问RoleDefinitions集合来检索SPRoleDefinition,如此......
siteWeb.RoleDefinitions["Contribute"]