如何使用share point 2010中的功能限制用户更改网站管理员以外的主题?

时间:2012-06-06 10:13:08

标签: sharepoint-2010

我是sharepoint 2010的新用户。我想限制用户使用sharepoint 2010中的功能更改网站管理员以外的主题。我尝试使用以下代码执行相同操作。

          SPSecurity.RunWithElevatedPrivileges(delegate() 

           { 

               SPWebApplication webApp = properties.Feature.Parent as SPWebApplication; 



               SPPolicyRole RestrictThemes; 



               //we are removing the ApplyStyleSheets permission and ApplyThemeAndBorder permission by passing this 

               //to Policyroles. 

               SPBasePermissions RestrictPermissions = SPBasePermissions.ApplyStyleSheets | SPBasePermissions.ApplyThemeAndBorder; 



               //we are not granting any permissions 

               SPBasePermissions GrantPermissions = new SPBasePermissions(); 



               RestrictThemes = webApp.PolicyRoles["Restrict Themes"]; 



               if (RestrictThemes == null) 

               { 



                   RestrictThemes = webApp.PolicyRoles.Add("Restrict Themes", "Restricts themes to be modified by anybody", 

                                                   GrantPermissions, 

                                                   RestrictPermissions); 

                   webApp.Update(); 

               } 



               SPPolicy policy = webApp.Policies.Add("NT Authority\\Authenticated users", "All Authenticated Users"); 

               policy.PolicyRoleBindings.Add(RestrictThemes); 



               webApp.Update(); 

});

但是当我尝试这个代码时,它甚至不允许网站管理员。 请提供任何想法或建议。

提前致谢。

1 个答案:

答案 0 :(得分:0)

为什么在代码中呢?应用主题的能力由“Apply Themes and Borders”权限控制。默认情况下,它被分配到“设计”权限级别。

只需确保您网站的成员具有适当的权限,而不是尝试修改每个人的权限。您可以通过修改默认 SharePoint 站点组的权限或创建具有所需权限的新组来执行此操作。

此外,您不应该直接向Windows组分配权限。 SharePoint不会将Windows(或AD)组视为与SharePoint组相同。您可以通过创建特定的SP组并为其分配AD组来避免很多痛苦。