我有一种情况,如果SharePoint网站所有者决定中断权限继承并直接管理网站成员身份,我还希望相应地修改顶级网站中特定列表中项目的查看权限。
如何最好地捕获这些更改,以便我知道何时对列表项应用适当的更改?
我希望在网站的权限更改时通知一些C#代码,以便我可以通过编程方式修改相应的列表项权限。
答案 0 :(得分:1)
执行此操作的最佳方法(不幸的是)定期查询所有站点并检查是否禁用了继承。我遇到了类似的问题,并使用PowerShell脚本来创建report on site security。如果您之前没有使用过Powershell,请不要被吓倒。语法非常类似于C#。
答案 1 :(得分:0)
您可以使用SharePoint审核来监控权限更改。它将跟踪项目级别的更改。缺点是你必须打开这个功能,这会在一定程度上损害性能。
至于通知,我认为审计不会告诉您有关更改的信息。我很确定你需要轮询审核日志。
此article on MSDN中有大量有关审核的信息。
答案 2 :(得分:0)
我认为另一种可能做得很好的方法是使用SharePoint ChangeLog。基本上,SharePoint在索引编制期间使用它,日志告诉收集器确切地改变了什么,以及在增量爬网期间应该索引什么。
如果您更改了权限,则应在增量爬网期间选择此权限。 ChangeLog具有可以传递以识别权限更改的特定参数。看一下SPChangeQuery类:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spchangequery.aspx
具体来说,您可以查找ChangeTypes: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spchangetype.aspx
其中: AssignmentAdd AssignmentDelete MemberAdd MemberDelete ......还有更多