【问题标题】:Sharepoint features, custom aspx pages at various site levelsSharepoint 功能,各种站点级别的自定义 aspx 页面
【发布时间】:2010-10-29 22:08:24
【问题描述】:

我问过类似的问题here,但更具体的是什么。

我希望能够部署解决方案并激活一项功能,将各种自定义 aspx 页面配置到我网站内的不同站点级别。

所以我的第一个自定义 aspx 页面将位于根目录:http://example.org/custompage1.aspx

然后另一个自定义 aspx 页面将出现在更深层次:http://example.org/subsite1/custompage2.aspx

我的解决方案仅限于“网络”级别。如果我在子站点级别激活该功能,我可以访问应该出现在这个更深层次的自定义 aspx 页面,但是,我也可以访问应该只出现在网站根目录的其他页面,例如http://example.org/subsite1/custompage1.aspx

错了,错了,错了!

我尝试将功能范围限定为“站点”,但这似乎只提供了根自定义 aspx 页面,而不是应该出现在网站更深层次的页面。

【问题讨论】:

    标签: sharepoint moss wss


    【解决方案1】:

    “自定义 aspx”页面在 SharePoint 中称为“应用程序”页面,它们部署在 _layouts 目录中(通常为 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS) . Layouts 目录中的所有页面都可以从 Web 应用程序中的每个站点访问。

    如果您事先知道哪个页面与哪个站点对应,那么您可以在每个自定义页面中放置代码,检查是否从“无效”站点访问它,如果是,则抛出自定义 404 错误(请参阅此处:Hidden Features of ASP.NET) 或类似的东西。

    【讨论】:

    • 查看您的其他问题后,如果您希望某些应用程序页面仅供站点管理员访问,请查看 RequireSiteAdministrator 属性:msdn.microsoft.com/en-us/library/…
    • 我认为我们在这里混合了术语,我使用术语自定义 aspx 页面来表示我在 Visual Studio 中创建的具有代码隐藏文件并且可以通过“普通的网站用户。在这种情况下,我指的不是应用程序页面。
    • 是的,应用程序页面。见这里:msdn.microsoft.com/en-us/library/bb418732.aspx
    【解决方案2】:

    您在功能 xml 中所做的任何事情都将仅适用于激活该功能的站点。如果您想基于相对 url 在多个站点上做某事,您将需要设置一个功能接收器并使用自定义代码将文件/功能部署到其他站点。

    最简单的方法可能是在您的解决方案中创建一个单独的 Web 范围的功能,并让站点范围的功能接收器在子站点上激活它。

    【讨论】:

    • 酷,谢谢汤姆,我认为你的方向是正确的,虽然看起来有点啰嗦,但又是共享点。
    【解决方案3】:

    克洛菲尔找到了答案。我只想补充一点,您可以在页面中使用 SPContext.Current.Web 来确定调用时您所在的网站。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-16
      • 2021-01-28
      • 2011-03-22
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 2011-05-24
      相关资源
      最近更新 更多