如何将ASP.NET网站转换为SharePoint网站?
假设您有一个包含代码隐藏的ASP.NET站点。您现在需要将此网站移动到SharePoint环境中,在该环境中,它将成为其自己的web应用程序中网站集的根网站。在不完全重做每一页的情况下,最简单的方法是什么?以下是一些选项-可能还有其他选项:如何将ASP.NET网站转换为SharePoint网站?,sharepoint,Sharepoint,假设您有一个包含代码隐藏的ASP.NET站点。您现在需要将此网站移动到SharePoint环境中,在该环境中,它将成为其自己的web应用程序中网站集的根网站。在不完全重做每一页的情况下,最简单的方法是什么?以下是一些选项-可能还有其他选项: 将每个网页转换为用户控件,并将其静态嵌入到自己的页面中 将每个网页转换为用户控件,并使用web部件(例如SmartPart)嵌入此控件 将每个网页转换为用户控件,并将其放入CONTROLTEMPLATES中 将页面放入_布局,并将其视为应用程序页面 将页面放
或者只使用一个功能将它们部署到SharePoint的文件夹中,即
只要DLL可用(在GAC(自动完全信任)中,或在Bin(写代码访问安全策略)中)你的页面可以正常工作。见鬼,你甚至可以使用SharePoint母版页。使用SmartPart可能是最简单的解决方案。如果你已经有了现有网站,我不认为仅仅因为SharePoint就要重写所有内容有什么意义。如果你继续开发并使用SharePoint作为平台,那么你可能需要考虑其他选项比SmartPart还要好
编辑。此外,您可能想查看我不久前问过的问题。我想说,这取决于您希望最终用户如何看待页面以及您将来希望如何处理页面 如果您只需要快速启动并运行它,那么请尝试Colin的解决方案。但我不确定将应用程序放入SharePoint的目的是什么
如果一致的SharePoint外观很重要,并且您希望随着时间的推移慢慢将页面集成到SharePoint,那么我会将它们转换为用户控件并使用SmartPart。然后您将获得SharePoint的外部chrome/功能,并可以使用SharePoint功能及时更新您的用户控件。还有更简单的用户控件的开发体验,而不是在代码中动态创建它们(传统的web部件开发)。以下是我如何做到这一点的: 首先,您需要为ASP.NET站点的二进制文件提供一个单独的DLL,否则配置所有内容是一件无止境的差事。 最简单的方法是如果您有一个web应用程序项目。如果您有一个“web站点”项目,您可以按照MSDN()中所述转换它(我就是这么做的),或者还有一个web部署项目外接程序()获取单个DLL,尽管我没有尝试过。请确保对程序集进行强名称命名,以便将其部署到GAC 1) 使用“空白站点”模板,以常规方式创建web应用程序和网站集。如果您使用的是表单身份验证,那么下一步还需要将其扩展到Windows身份验证站点 2) 在SharePoint Designer中打开新网站集的根网站(否,严重) 3) 从菜单“文件->导入->导入站点向导”中,选择文件系统并浏览到您的web应用程序或网站项目,然后打开它(选中“包含子网站”),然后,完成 4) 从SharePoint Designer中的并排导入视图中,选择.aspx和.ascx文件并将其复制到SharePoint网站(右键单击并选择“发布选择文件”)。还可以复制任何静态内容文件、图像等以及母版页以供参考。不要复制任何代码隐藏文件 5) 在SharePoint Designer中,修改母版页库中的默认母版页,以复制旧的ASP.NET母版页(但包括最小的.master占位符,以便它也可以与普通SharePoint页一起使用) 6) 仍然在SharePoint Designer中,对于每个.aspx页面,使用菜单格式->母版页->附加母版页并选择默认母版页。如有必要,还可以重新映射内容占位符 7) 将ASP.NET项目的DLL复制到网站根目录的bin文件夹(例如C:\Inetpub\wwwroot\wss\VirtualDirectories\MySharePointWebApplication\bin)。它还可以部署到GAC,这将允许它们以完全信任的方式运行。如果您的应用程序依赖于其他DLL,请同时复制这些DLL 8) 在网站根目录中修改web.config,为ASP、NET应用程序DLL和您复制的任何其他DLL(例如
)添加安全控制元素
9) 为站点的根目录添加PageParser异常:
10) 如果您有用户控件,则还需要将目录添加到SafeControls,例如,如果根目录中有.ascx文件,请将
添加到web.config
请注意,最后几步削弱了SharePoint的安全模型,因此它应该只是一个临时解决方案。即使这样,您也可能需要修改一些代码,以使用SPSecurity.RunWithElevatedPrivileges,使其在SharePoint应用程序的上下文中工作。如果需要长期解决方案,动态页面或其中的一部分可以作为用户控件或web部件嵌入到SharePoint页面中。可能的情况是,您希望SharePoint网站向前发展,但希望从现有ASP.NET网站开始。是否需要将信任级别设置为WSS_Full才能正常工作?具体取决于?如果部署到GAC,则DLL将自动获得完全信任。如果部署到Bin目录,则通过提到的CAS策略确定信任级别。另外,通过web.config将信任级别设置为full是一种不好的做法。