Чтобы установить разрешения прагматично вам нужно сделать следующее.
1) Перерыв Роль Наследование пункта 2) Добавить новое назначение роли
Чтобы разорвать перерыв Роль Наследование элемента вызывается метод BreakRoleInheritance по этому вопросу, передавая истинный скопирует текущие разрешения для список к элементу.
item.BreakRoleInheritance(false);
Затем вам необходимо получить сборку Назначения ролей элементов и добавить к ней новое назначение роли. Назначение роли создается для SPPrincipal и связано с SPRoleDefinition.
SPRoleAssignmentCollection rolesAssignments = item.RoleAssignments;
SPRoleAssignment userRoleAssignment = new SPRoleAssignment(principal);
userRoleAssignment.RoleDefinitionBindings.Add(roleDefinition);
rolesAssignments.Add(userRoleAssignment);
Чтобы принести определение роли вы можете перейти к свойству FirstUniqueRoleDefinitionWeb текущего SPWeb, так что вы держите любые настройки, которые были сделаны для ваших сайтов разрешений, а затем использовать роль в SPWeb в Определении коллекции. (Я не слишком уверен, картины для захоронения собственности FirstUniqueRoleDefinitionWeb, если вы используете SPContext Dont выбрасывайте его)
if (web.FirstUniqueRoleDefinitionWeb != null)
{
using (SPWeb firstUniqueRoleDefinitionWeb = web.FirstUniqueRoleDefinitionWeb)
{
return firstUniqueRoleDefinitionWeb.RoleDefinitions[roleName];
}
}
return web.RoleDefinitions[roleName];
Надеется, что это поможет вам в правильном направлении
Спасибо за ваш ответ. Но я забыл упомянуть, что хочу добиться этого программно. –
Хорошо, я добавил несколько примеров кода. –
Большое спасибо, я попробую это после добавления этого комментария;) –