SharePoint使用BreakInheritance并处理ACL

时间:2011-03-21 00:13:04

标签: .net sharepoint

我正在使用几个需要精细列表项权限的文档库,其中某些组可能会看到某些列表项,而其他组则不能。显而易见的解决方案似乎是打破列表项的继承并单独分配权限。问题是这些库中的一些是大约10,000个列表项并且在不断增长......而且根据我的理解,为这么多项目分配这样的权限可能是个大问题。

根据我的理解,每次在给定范围内(在站点级别,列表,列表项等范围内)继承继承时,都会创建一个访问控制列表(ACL)。所以,如果我打破继承在10k列表项目中,我刚刚创建了10,000个ACL,这是SP在跪下之前可以存储的限制并引发错误(参见:http://blogs.msdn.com/b/willstan/archive/2009/03/03/the-attempt-to-release-mutex-not-owned-by-caller-exception-what-is-it-and-how-to-avoid-it.aspx)..这一切似乎都很糟糕。显然有一个KB可以摆脱这个错误(http://support.microsoft.com/kb/968859),但是如果生成这么多ACL,这种技术似乎仍然值得怀疑。

对此有何看法?

1 个答案:

答案 0 :(得分:2)

是的,你不仅会遇到这个问题,而且维护成为一场巨大的噩梦,因为你不知道哪个项目被许可给谁。更好的是打破每个库的权限并移动项目。

虽然很难将历史等文件移动起来,但持续的痛苦和痛苦的节省是巨大的。

您可以使用内容webparts组合这两个文档库。

否则,您可以通过这种方式创建文件夹和权限。

所以我的2美分值是为您需要的每个主要不同权限级别创建一个库或文件夹,以及一个用于移动内容的脚本。

对我来说,文件夹不是很好,但优点是它们确实将所有内容保存到一个列表中。

另请注意,SharePoint的限制为5000 items per query,因此您可能会从列表中获得一些价值。