我想创建一个具有自己的自定义权限级别的子网站。目前,当我在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)中的参数说明,但它们没有描述权限级别。
答案 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