I have a case where if a SharePoint site owner decides to break permissions inheritance and directly manage site membership, I’d also like to correspondingly modify view permissions on items in a specific list in the top-level site.
How can I best catch those changes so I know when to apply the appropriate changes to the list items?
I’d like to have some C# code be notified when a site’s permissions are changed so I can programmatically modify the appropriate list item permissions.
The best way to do this (unfortunately) is to periodically query all of the sites and check to see if inheritance is disabled. I had a similar problem and used powershell scripting to create a report on site security. If you haven’t used Powershell before, don’t be intimidated. The syntax is VERY similar to C#.