Программирование средств безопасности в SharePoint 2007 - Группы WSS

ОГЛАВЛЕНИЕ

Группы WSS

Хотя модель безопасности WSS представляет внешних участников безопасности как объекты SPUser, она также предоставляет группы WSS, в качестве средства упрощения настройки разрешений в масштабе семейства веб-узлов. Например, можно разработать набор групп WSS внутри семейства веб-узлов для конкретных ролей пользователей, таких как Site Members («Члены веб-узла»), Content Manager («Диспетчер содержимого») и Site Administrators («Администраторы веб-узла»). После того, как это сделано, настройки безопасности веб-узла можно настраивать путем простого назначения уровней разрешений группам WSS, вместо назначения уровней разрешений напрямую объектам SPUser.

Очевидным достоинством групп WSS является то, что они помогают устранить постоянную нужду в перенастройке разрешений, по мере добавления и удаления новых внешних пользователей и групп. Вместо этого, можно настроить разрешения сразу и для всех при создании веб-узла. А затем можно просто добавлять в группы WSS и удалять из них внешних пользователей и группы. На практике группы WSS следуют тем же принципам разработки, что и группы Active Directory, основным же различием между ними является то, что группы WSS определяются и существуют лишь в масштабах единственного семейства веб-узлов.

Группы WSS представлены в групповой модели WSS как объекты SPGroup. Объект SPWeb предоставляет два семейства объектов SPGroup, именуемые Groups и SiteGroups. Семейство Groups включает все группы WSS, которым были прямо назначены разрешения на текущем веб-узле, тогда как семейство SiteGroups является наднабором семейства Groups и включает в себя все группы WSS, созданные внутри текущего семейства веб-узлов.

Когда необходимо создать новую группу WSS, следует вызвать метод Add, предоставляемый семейством SiteGroups и затем назначить группе WSS один или несколько уровней разрешений внутри целевого веб-узла. рис. 2 показывает пример создания новой группы WSS, именуемой Site Members («Члены веб-узла») и назначение ей встроенного уровня разрешений Contribute внутри текущего веб-узла.

Figure 2 Creating a New WSS Group

SPWeb site = SPContext.Current.Web;
SPUser currentUser = site.CurrentUser;

// create new group
site.SiteGroups.Add("Site Members", currentUser, currentUser,
  "Site Group created at " + DateTime.Now.ToString());

// assign permission level to new group
SPGroup NewGroup = site.SiteGroups["Site Members"];
SPRoleAssignment roleAssignment = new SPRoleAssignment(NewGroup);
SPRoleDefinition permLevel = site.RoleDefinitions["Contribute"];
roleAssignment.RoleDefinitionBindings.Add(permLevel);
site.RoleAssignments.Add(roleAssignment);

После того, как новая группа WSS создана, добавлять новых внешних пользователей и группы в число ее членов довольно легко. Объект SPGroup предоставляет метод AddUser, который принимает объект SPUser, который, в свою очередь, позволяет добавлять внешних пользователей и группы:

SPWeb site = SPContext.Current.Web;
SPUser currentUser = site.CurrentUser;
SPGroup group = site.SiteGroups["Site Members"];
SPUser user1 = site.SiteUsers[@"LITWAREINC\BrianC"];
SPUser user2 = site.SiteUsers[@"LITWAREINC\AllFTE"];
group.AddUser(user1);
group.AddUser(user2);