попробуйте следующий код. Сначала вам нужно определить определение роли (при условии, что вы используете существующее). После этого добавьте группу к роли, а затем добавьте роль в сеть:
public enum RoleTypeEnum { fullcontrol, design, contribute, read };
//declare roledefinition
SPRoleDefinition roleDefinition;
//switch to determine role
switch (roleType)
{
case RoleTypeEnum.contribute:
roleDefinition = spWeb.RoleDefinitions[Constants.SiteCollection.SecurityTypeNames.contribute];
break;
case RoleTypeEnum.design:
roleDefinition = spWeb.RoleDefinitions[Constants.SiteCollection.SecurityTypeNames.design];
break;
case RoleTypeEnum.fullcontrol:
roleDefinition = spWeb.RoleDefinitions[Constants.SiteCollection.SecurityTypeNames.fullcontrol];
break;
case RoleTypeEnum.read:
roleDefinition = spWeb.RoleDefinitions[Constants.SiteCollection.SecurityTypeNames.read];
break;
default:
return null;
}
//add group to role
SPGroup group = spWeb.SiteGroups[groupName];
SPRoleAssignment roleAssignment = new SPRoleAssignment(group);
roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
//add role to web
spWeb.RoleAssignments.Add(roleAssignment);
spWeb.Update();
Константы, которые я использовал в коммутаторе, голландские, но вот они:
public static partial class SecurityTypeNames
{
public const string fullcontrol = "Volledig beheer";
public const string design = "Ontwerpen";
public const string contribute = "Bijdragen";
public const string read = "Lezen";
}