我为我的自定义博客站点定义创建了许多网络范围的功能。我的所有功能都可以正常工作,但是它们出现在我的网站集中所有网站的“网站功能”页面上——不仅仅是博客。
显然它们只与博客相关(因为它们会在博客帖子上启用匿名评论等)。
有没有办法将某些网络范围的功能的可见性限制在特定类型的站点(即从特定站点定义创建的站点)?
我为我的自定义博客站点定义创建了许多网络范围的功能。我的所有功能都可以正常工作,但是它们出现在我的网站集中所有网站的“网站功能”页面上——不仅仅是博客。
显然它们只与博客相关(因为它们会在博客帖子上启用匿名评论等)。
有没有办法将某些网络范围的功能的可见性限制在特定类型的站点(即从特定站点定义创建的站点)?
我认为不可能做到这一点。
如果您担心人们会从 UI 激活您的功能,您可以隐藏您的功能。
<Feature Hidden="TRUE"></Feature>
然后在您的自定义 BLOG 站点模板的 ONET.xml 中,您可以强制在创建站点时激活您的功能。
<Configurations>
<Configuration>
<WebFeatures>
<Feature ID="[Insert GUID of your feature]"/>
</WebFeatures>
</Configuration>
</Configurations>
这不会阻止通过 STSADM 或 PowerShell 激活该功能。如果您想走得那么远,也许您可以在您的功能中添加一个功能接收器,以防止它在非 BLOG 站点上被激活……但这真的有必要吗?