如何将ASP.NET站点转换为SharePoint站点?

时间:2009-07-08 08:44:54

标签: sharepoint

想象一下,你有一个包含代码的ASP.NET站点。您现在需要将此站点移动到SharePoint环境,在该环境中,它将成为其自己的Web应用程序中的网站集的根网站。如果不完全重新处理每个页面,最简单的方法是什么?以下是一些选项 - 可能还有其他选项:

  1. 将每个网页转换为用户控件,并将其静态嵌入到自己的页面中。
  2. 将每个网页转换为用户控件,并使用网页部件(例如SmartPart)嵌入此页面。
  3. 将每个网页转换为用户控件,并将其放入CONTROLTEMPLATES。
  4. 将页面放在_layouts中并视为应用程序页面。
  5. 将页面放入文档库并禁用所有SharePoint安全设置。

4 个答案:

答案 0 :(得分:2)

或者只是使用一项功能将它们部署到SharePoint文件夹中,即

http://sharepointserver/yourapplication/default.apsx

只要DLL可用(在GAC中,自动完全信任,或在Bin(编写代码访问安全策略)中,您的页面就可以工作。哎呀,您甚至可以使用SharePoint母版页。< / p>

答案 1 :(得分:2)

使用SmartPart可能是最简单的解决方案。如果您已经拥有现有网站,我认为仅仅因为Sharepoint而无法重写所有内容。如果您继续开发并使用sharepoint作为平台,那么您可能还想查看除SmartPart之外的其他选项。

编辑。您也可以查看我前段时间问过的this question

答案 2 :(得分:1)

我想说这取决于您希望页面向最终用户展示的方式以及您将来要对其进行的操作。

如果你只是需要它并快速运行,那么试试Colin的解决方案。但我不确定将应用程序放入SharePoint的重点是什么?

如果一致的SharePoint外观很重要,并且您希望将这些页面随着时间的推移慢慢集成到SharePoint,那么我会将它们转换为用户控件并使用SmartPart。然后,您将获得SharePoint的外部镶边/功能,并可以使用SharePoint功能及时更新用户控件。还有更简单的用户控件开发体验,而不是在代码中动态创建它们(传统的Web部件开发)。

答案 3 :(得分:1)

以下是我如何做到这一点:

首先,你需要为ASP.NET站点的二进制文件提供一个DLL,否则它是一个无法解决的问题。 最简单的方法是,如果您有一个Web应用程序项目。如果您有一个“网站”项目,您可以按照我在MSDN(http://msdn.microsoft.com/en-us/library/aa983476.aspx)上的描述进行转换,或者也可以使用Web部署项目加载项(http://weblogs.asp.net/scottgu/archive/2008/01/28/vs-2008-web-deployment-project-support-released.aspx)获取单个DLL虽然我没有尝试过这个。确保您对程序集进行了强名称,以便将其部署到GAC。

1)使用“空白站点”模板以常规方式创建Web应用程序和网站集。如果您使用的是表单身份验证,则还需要将其扩展到Windows身份验证站点以进行下一步。

2)在SharePoint Designer中打开新网站集的根网站(不,严肃地说)。

3)从菜单中选择文件 - >导入 - >导入站点向导,选择文件系统并浏览到您的Web应用程序或网站项目,然后打开它(选中“包含子网站”),然后单击“完成”。

4)从SharePoint Designer中的并排导入视图中,选择.aspx和.ascx文件并将其复制到SharePoint站点(右键单击并选择“发布选择文件”)。还可以复制任何静态内容文件,图像等以及您的母版页以供参考。不要复制任何代码隐藏文件。

5)在SharePoint Designer中,修改母版页库中的默认母版页以重现旧的ASP.NET母版页(但包含minimal.master占位符,以便它也可以与vanilla SharePoint页面一起使用)。 / p>

6)仍然在SharePoint Designer中,对于每个.aspx页面,使用菜单Format-&gt; Master Page-&gt; Attach Master Page并选择默认母版页。如有必要,您还可以重新映射内容占位符。

7)将ASP.NET项目的DLL复制到网站根目录的bin文件夹(例如C:\ Inetpub \ wwwroot \ wss \ VirtualDirectories \ MySharePointWebApplication \ bin)。它也可以部署到GAC,这将允许它们以完全信任的方式运行。如果您的应用程序依赖于其他DLL,也可以复制它们。

8)修改网站根目录中的web.config,为ASP,NET应用程序DLL和您复制的任何其他DLL添加SafeControl元素,例如: <SafeControl Assembly="WebApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d7bb9cf4fbfef0d6" Namespace="WebApplication1" TypeName="*" Safe="True" AllowRemoteDesigner="True" />

9)为您网站的根添加PageParser例外:<PageParserPath VirtualPath="/*" CompilationMode="Auto" AllowServerSideScript="true" IncludeSubFolders="true"/>

10)如果你有用户控件,你还需要将目录添加到SafeControls,例如如果您在根目录中有.ascx文件,请将<SafeControl Src="~/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" />添加到您的web.config。

请注意,最后几个步骤削弱了SharePoint的安全模型,因此它应该只是一个临时解决方案。即使这样,您也可能需要修改一些代码隐藏,以使用 SPSecurity.RunWithElevatedPrivileges 使其在SharePoint应用程序的上下文中工作。如果需要更长期的解决方案,动态页面或其中的一部分可以作为用户控件或Web部件嵌入SharePoint页面中。