2

我正在处理 SharePoint 2010 。创建功能以自动创建自定义列表。我被分配了一项任务,以编程方式使用功能自动设置每个列表的自定义权限。我想知道这是否可能,如果可以,如何。

这里有两件事:

  1. 自定义权限级别将使用贡献删除权限创建。
  2. 此权限和默认可用权限将设置为使用功能定制的列表。

如果可能,请务必指定要覆盖的方法。提前感谢您的宝贵答案。

4

1 回答 1

3

使用类似于以下的代码覆盖特征接收器的 FeatureActivated 方法:

public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        SPWeb web = (SPWeb)properties.Feature.Parent;
        SPList list = web.GetList(web.Url + "/Lists/MyList");

        SPRoleDefinition roleDef = new SPRoleDefinition();
        roleDef.BasePermissions = SPBasePermissions.DeleteListItems 
            | SPBasePermissions.AddListItems 
            | SPBasePermissions.EditListItems;
        roleDef.Description = "Custom permissions deployed by feature";
        roleDef.Name = "Contribute-Delete";
        web.RoleDefinitions.Add(roleDef);
        roleDef = web.RoleDefinitions[roleDef.Name];
        SPMember owner = web.SiteUsers[@"Domain\username"];
        SPUser user = web.SiteUsers[@"Domain\username"];
        web.SiteGroups.Add("Contribute-Delete",owner, user,"A group for contribute delete access");
        SPGroup ContributeDeleteGroup = web.SiteGroups["Contribute-Delete"];
        SPRoleAssignment roleAssignment = new SPRoleAssignment(ContributeDeleteGroup);
        roleAssignment.RoleDefinitionBindings.Add(roleDef);
        list.BreakRoleInheritance(true);
        list.RoleAssignments.Add(ContributeDeleteGroup);
    }
于 2012-07-13T14:59:22.980 回答