我想知道这种情况的最佳实践是什么:

我有一个 Sharepoint 站点 (MOSS2007),上面有一个 ASPX 页面。但是,我无法使用任何内联源,并且事件处理程序之类的东西不起作用,因为 Sharepoint 默认情况下不允许在 ASPX 页面上使用服务器端脚本。

两种解决方案:

  1. 改变 PageParserPath网络配置 按照 这个网站

    <PageParserPaths>
    <PageParserPath VirtualPath="/pages/test.aspx" 
            CompilationMode="Always" AllowServerSideScript="true" />
    </PageParserPaths>
    
  2. 创建所有控件并将它们连接到 。CS 文件,从而完全消除了 ASP.net 的一些好处

我想知道,最好的做法是什么?第一个看起来是正确的选择,但是改变 网络配置 是我想尽可能少用的东西。

有帮助吗?

解决方案

因此,在这种情况下,我会将其包装在一个功能中,并通过解决方案进行部署。这样我认为您将避免您所看到的问题。如果您也计划在其他站点中使用此功能,这尤其有用。

您还可以将 Web 部件直接嵌入到页面中,就像使用 WebControl 一样,从而避免图库混乱。

其他提示

ASPX 页面有什么作用?它增加了什么功能?您如何将页面添加到网站中?从表面上看,这只是文档库中的一个“Web 部件页”。

我必须做一些研究才能达到 100%,但我的理解是内联代码是可以的,只要它位于一个保持幻影的页面中,从而受到信任。您可以通过功能将您的功能添加到网站中吗?

我会避免选择 1,这对我来说似乎是个坏建议。允许页面中的服务器端代码存在安全风险,因为有人可能会注入恶意代码。当然,您可以保护页面,但我们正在谈论可能需要一些非常严格的权限的远程执行。

到目前为止谢谢。我已经成功尝试了安德鲁康奈尔的解决方案:

http://www.andrewconnell.com/blog/articles/UsingCodeBehindFilesInSharePointSites.aspx

将其包装到解决方案中是其中的一部分,但主要问题是如何将代码放入其中,并且它更倾向于选项 2,而无需在代码中创建控件。

我缺少什么:
在.cs文件中,需要手动添加“受保护的按钮触发器”;东西,因为使用类库时,没有自动生成的.designer.cs文件。

嗯,这是一个托管用户控件的页面。这是将在网站上创建的自定义 .aspx 页面,特别是因为我不想创建 WebPart。

它本质上是在 Sharepoint 中运行的应用程序,利用列表和其他功能,但所有功能仅在应用程序内有用,因此我想避免在 Web 部件库中充斥无数仅在一个地方工作的 Web 部件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top