以编程方式中断权限级别继承

son*_*iic 2 sharepoint sharepoint-2010

我想创建一个具有自己的自定义权限级别的子网站.目前,当我访问http://servername/subsite1/_layouts/role.aspx上的Permission Levels屏幕时,我看到了所有权限级别,但这些是来自rootweb的权限级别.如何在此处中断继承并添加自己的自定义权限级别?

目的是因为该角色在本网站之外没有用处,所以我宁愿不把它放在根上.

这个问题与此处提出的问题相同:http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/32ad2700-8009-4636-880e-07acfca98a06但是Shah Mehul回复说它可以通过编程方式完成.他弄错了吗?我已经阅读了SPWeb.BreakRoleInheritance(布尔值,布尔值)中的参数描述,但它们没有描述权限级别.

Ped*_*nto 5

您仍然可以在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
Run Code Online (Sandbox Code Playgroud)