4

我有两个将 CustomAction 添加到 SiteSettings 页面的功能。一个功能是在站点级别,另一个是在 Web 级别。

在站点级别添加的 CustomAction 是指向自定义配置页面的链接,该页面为我的应用程序操作站点级别设置。因此,我不希望为子网站的 SiteSettings 页面显示链接。我知道有一个设置(RequireSiteAdministrator)可以根据访问级别隐藏页面,但我仍然希望在顶级/根级别站点设置页面而不是子站点级别设置页面中为站点所有者显示此页面.

CustomAction xml 节点有一个 RootWebOnly 属性,可以解决我的问题。此属性的问题在于它仅适用于沙盒解决方案。

我知道这是可能的,因为我在网站设置页面的用户和权限部分看到了网站集管理员链接的行为。请注意,如果您转到顶级/根级别设置页面,您将看到此链接。另一方面,如果您导航到子站点的站点设置页面,则链接不再存在。

我曾尝试使用 HideCustomAction,但这会隐藏两个页面上的链接。

4

2 回答 2

3

在与这个斗争了两天之后,我有一个 ah 的时刻,我想我会分享。这将允许您放置仅在根 Web 级别显示的自定义操作。

创建 2 个特征。一种在站点级别 (siteFeature),另一种在 Web 级别 (webFeature)。隐藏 Web 功能,使其无法通过管理功能页面访问(激活/停用)。将自定义操作元素 xml 放入 Web 功能中。在站点功能的激活事件接收器中,激活 Web 功能。

于 2013-01-25T18:20:12.447 回答
0

不幸的是,自定义操作和自定义组无法做到这一点。

您所能做的就是设置仅向 SiteCollection 管理员显示的链接的权限

示例是“站点集合管理”组,当您不在顶级站点级别时链接隐藏并在您位于时显示。

希望能帮助到你,

安德鲁

于 2013-01-25T08:32:29.060 回答