An interesting question came up on StackOverflow – how do you get the web application level policies for a Web app? In other words, the rights that you can grant to an entire web application (via central administration) – how do you get those in code?
It turns out that this is done via the SPWebApplication.Policies collection, which is actually pretty simple to use:
System.Uri uri = new Uri("http://sp/"); SPWebApplication webApplication = SPWebApplication.Lookup(uri) SPPolicyCollection policyCollection = webApplication.Policies; SPPolicyRoleCollection policyRoles = webApplication.PolicyRoles; foreach (SPPolicy p in policyCollection) { Console.WriteLine("{0} - {1}", p.DisplayName, p.UserName); foreach (SPPolicyRole pr in p.PolicyRoleBindings) { Console.WriteLine(" {0} - IsAdmin: {1}, FullControl: {2}", pr.Name, pr.IsSiteAdmin, pr.GrantRightsMask == SPBasePermissions.FullMask); } }
Might be useful someday.