是否可以通过编程方式将组(在SharePoint中)的权限授予站点?

时间:2010-12-13 22:51:50

标签: sharepoint sharepoint-2010

我正在使用SharePoint对象模型以编程方式创建新网站(使用自定义Web部件)。它工作正常,但我想知道是否有可能为组授予权限?

当我创建网站时,我将其设置为不继承权限

newWeb = SPContext.GetContext(HttpContext.Current).Web.Webs.Add(siteUrl, siteName, siteDescription, (uint)1033, siteTemplate, true, false);

在GUI中我可以转到网站操作(在新创建的网站上) - >授予权限 - >搜索父站点中的组,然后为该组授予权限。因此,在父网站中,myGroup可以拥有完全访问权限,但在此网站中我可以将其设置为Contribution或其他任何内容。是否可以在创建网站时或在(以编程方式)之后执行此操作?

提前致谢。

1 个答案:

答案 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"]