我是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();
});
但是当我尝试这个代码时,它甚至不允许网站管理员。 请提供任何想法或建议。
提前致谢。
答案 0 :(得分:0)
为什么在代码中呢?应用主题的能力由“Apply Themes and Borders”权限控制。默认情况下,它被分配到“设计”权限级别。
只需确保您网站的成员具有适当的权限,而不是尝试修改每个人的权限。您可以通过修改默认 SharePoint 站点组的权限或创建具有所需权限的新组来执行此操作。
此外,您不应该直接向Windows组分配权限。 SharePoint不会将Windows(或AD)组视为与SharePoint组相同。您可以通过创建特定的SP组并为其分配AD组来避免很多痛苦。