配置安全 Web 部件并将其部署到服务器 (Office SharePoint Server)

Microsoft Office SharePoint Server 2007 附带了一组 Web 部件,网站管理员可以在安装该产品之后将这些 Web 部件添加到 Web 部件页。但是,您的组织可能需要自定义的 Web 部件。在此情况下,开发人员会编写自定义构建的 ASP.NET 2.0 Web 部件,并要求您将这些部件安装到 Office SharePoint Server 2007 部署中。

Office SharePoint Server 使用 Microsoft .NET Framework 提供的一些配置管理设置。其中的一些设置存储在 XML 配置文件中,并提供可供服务器管理员用来管理 Web 应用程序及其环境的各类设置。有关 ASP.NET 2.0 配置文件的详细信息,请参阅 MSDN Library Online 中的“保护 ASP.NET 应用程序和 Web 服务”中的Machine.Config 和 Web.Config 详解 (https://go.microsoft.com/fwlink/?linkid=103450&clcid=0x804)。

配置选项

系统管理员可将 ASP.NET 2.0 Web 部件部署到 Office SharePoint Server 的以下任一位置:

  • Bin 目录   存储在 Web 应用程序的根目录中。

  • 全局程序集缓存 (GAC)   所有标准的 Web 部件都会自动随 .NET Framework 的公共语言运行库一起安装。如果将 Web 部件存储在 GAC 中,则能够在众多的应用程序之间共享 Web 部件。组件通常存储在 C:\WINNT\Assembly 中。

每个位置都具有各自的优点和缺点,如下表中所述。

部署位置 优点 缺点

Bin 目录

一个部分可信的位置。默认情况下,从该目录运行的代码具有较低级别的代码访问安全权限。管理员必须明确提升授予 Web 部件的权限,它才能正常工作。由于存在这种控制和深度防御,管理员更希望程序集在 Bin 目录中运行,并使用已知的必需代码访问安全权限集。

此外,Bin 目录也是特定于 Web 应用程序的。这样就能够隔离特定于 Web 应用程序的代码。

若要在任意位置运行 Web 部件,则必须部署 Bin 程序集。

GAC

一个可用来部署已签名程序集的全局位置。默认情况下,程序集在完全信任模式下运行。由于对这些程序集进行了全局安装,因此可以在任何 Web 应用程序中使用它们。

通常,对于已安装到 GAC 的代码,没有任何代码访问安全限制;因此,您将无法从深度防御安全中受益。

此外,很难将程序数据库 (.pdb) 文件部署到 GAC 内的程序集。

设置特殊的安全属性

存储在 Bin 目录中的 ASP.NET 2.0 Web 部件具有特殊的安全约束。您可以选择是否为 Web 部件设置特殊的安全属性,具体取决于您打算如何使用 Web 部件。

Bin 目录是一个部分可信的位置。因此,Web 部件在执行时不会自动授予完全信任代码权限。由于对调用 Web 部件的代码仅授予部分信任权限,因此 Web 部件开发人员必须对 ASP.NET 2.0 Web 部件设置 AllowPartiallyTrustedCallers 属性。

备注

使用 AllowPartiallyTrustedCallers 属性将组件标记为“安全”时,开发人员负有安全实施的责任。

默认情况下,Bin 目录的代码访问安全权限非常低,只允许执行代码。几乎可以肯定的是,必须提升这些权限,才能使程序集正常运行。

可以通过以下两种方式提升权限:

  • (建议)创建一个信任策略文件并将 Web.config 文件指向这个新文件。虽然这种方式更为复杂,但它能够为您提供 Web 部件的准确权限。有关信任策略文件的详细信息,请参阅 MSDN Library Online 中的 Microsoft Windows SharePoint Services 和代码访问安全(该链接可能指向英文页面)(https://go.microsoft.com/fwlink/?linkid=103436&clcid=0x804)。

  • 提升 Bin 目录的整体信任级别。在应用程序根目录下的 Web.config 文件中,找到 trust 元素。trust 元素的 level 属性的默认值为 WSS_Minimal。可以将此级别更改为 WSS_Medium。虽然这种方式更为简单,但它将授予您可能不需要的任意新权限,并且此方式的安全性没有创建信任策略文件的安全性高。

安全控件列表

SharePoint 产品和技术的基本假定是“不受信任的用户”可以在运行 Office SharePoint Server 的系统内上载和创建 .aspx 页。虽然应阻止这些用户在 .aspx 页内添加服务器端代码,但应提供一个可供这些不受信任用户使用的已批准控件的列表。在 Office SharePoint Server 中,此列表由安全控件列表提供。

安全控件列表是一个包含特定于 SharePoint 网站的控件和 Web 部件的列表,服务器管理员可以指定在网站内的任何 .aspx 页上调用这些控件和 Web 部件是安全的。将此列表存储在 Web 应用程序根目录下的 Web.config 文件中。

任务要求

执行此任务的过程的要求如下。

  • 已安装 Office 2007 发行版中的一个服务器产品的服务器计算机上的管理员权限。

若要配置安全 Web 部件并将其部署到服务器,可以执行以下过程。