我有两个功能可以将CustomAction添加到SiteSettings页面。一个功能是站点级别,另一个功能是Web级别。
在站点级别添加的CustomAction是指向操作应用程序的站点级别设置的自定义配置页面的链接。因此,我不希望为子网站的SiteSettings页面显示链接。我知道有一个设置(RequireSiteAdministrator)根据访问级别隐藏页面,但我仍然希望此页面在顶级/根级别站点设置页面显示给站点所有者,而不是在子站点级别设置页面
CustomAction xml节点有一个RootWebOnly属性可以解决我的问题。此属性的问题在于它仅适用于SandBoxed解决方案。
我知道这是可能的,因为我在“网站设置”页面的“用户和权限”部分中看到了网站集管理员链接的行为。请注意,如果您转到顶级/根级设置页面,您将看到此链接。另一方面,如果您导航到子网站的“网站设置”页面,则链接不再存在。
我尝试过使用HideCustomAction,但这会隐藏两个页面上的链接。
答案 0 :(得分:3)
在与这场斗争了两天之后,我有一个我认为我会分享的时刻。这将允许您放置仅在根网站级别显示的自定义操作。
创建2个功能。一个位于站点级别(siteFeature),另一个位于Web级别(webFeature)。 使Web功能隐藏,以便通过管理功能页面无法访问(激活/停用)。 将自定义操作元素xml放在Web功能中。 在站点功能的激活事件接收器中,激活Web功能。
答案 1 :(得分:0)
遗憾的是,自定义操作和自定义组无法实现这一点。
您所能做的就是在链接上设置权限,该权限仅显示给SiteCollection Administrator
示例如何“网站集管理”组,当您不在顶级网站级别时显示链接,并在您出现时显示链接。
希望它有所帮助,
安德鲁