0

我是 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(); 

});

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

提前致谢。

4

1 回答 1

0

为什么要在代码中这样做?应用主题的能力由“应用主题和边框”权限控制。默认情况下,这被分配给“设计”权限级别。

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

此外,您不应该将权限直接分配给 Windows 组。SharePoint 不会将 Windows(或 AD)组视为 SharePoint 组。您可以通过创建特定的 SP 组并将 AD 组分配给它们来避免很多麻烦。

于 2012-06-06T10:25:12.467 回答