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

时间:2011-08-12 09:55:09

标签: sharepoint sharepoint-2010

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

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

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

1 个答案:

答案 0 :(得分: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