Программно нарушить наследование уровня разрешений - PullRequest
2 голосов
/ 12 августа 2011

Я хотел бы создать дочерний сайт, который имеет свои собственные уровни разрешений. В настоящий момент, когда я захожу на экран «Уровни разрешений» со значением http://servername/subsite1/_layouts/role.aspx, я вижу все уровни разрешений, но это уровни rootweb. Как я могу нарушить наследование и добавить свой собственный уровень разрешений?

Цель в том, что роль не будет использоваться вне этого сайта, поэтому я бы предпочел не помещать ее в корневой каталог.

Этот вопрос совпадает с заданным здесь: http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/32ad2700-8009-4636-880e-07acfca98a06, но Шах Мехул ответил, что это можно сделать программно. Он ошибается? Я прочитал описания параметров в SPWeb.BreakRoleInheritance (Boolean, Boolean) , но они не описывают уровни разрешений.

1 Ответ

5 голосов
/ 12 августа 2011

Вы все еще можете нарушить наследование уровня разрешений в sharepoint 2010, хотя и только программно (ссылка: http://technet.microsoft.com/en-us/library/ff607713.aspx, раздел Разрешения для вложенных сетей)

Чтобы разбить его программно, вы можете использовать метод SPRoleDefinitionCollection.BreakInheritance (http://msdn.microsoft.com/en-us/library/ee547386.aspx)

Образец Powershell:

$web = Get-SPWeb "your site URL"
$web.RoleDefinitions.Delete("Some Custom Perm Level") # will not work, because perm levels are inherited
$web.RoleDefinitions.BreakInheritance(true,true)
$web.RoleDefinitions.Delete("Some Custom Perm Level") #will work
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...