設定及部署網頁組件 (SharePoint Server 2010)

 

適用版本: SharePoint Foundation 2010, SharePoint Server 2010

上次修改主題的時間: 2016-11-30

本文提供將安全網頁組件設定及部署至伺服器上的 Bin 目錄或 .NET Framework 全域組件快取 (GAC) 所需的資訊與程序。

本文內容:

Microsoft SharePoint Server 包括一組網頁組件,使用者可以在安裝產品之後,將這些網頁組件新增至頁面。如果組織需要自訂網頁組件,開發人員可以撰寫自訂 ASP.NET 網頁組件,並請您將其安裝至 SharePoint Server 的部署。此程序通常需要測試及核准程式碼,才可在完全信任的環境中部署網頁組件。使用 Visual Studio 2010 的開發人員可以在專案上按一下滑鼠右鍵,然後選取 [部署],以將網頁組件部署至 SharePoint Server。網頁組件的目的地取決於開發人員在 Visual Studio 2010 中建立專案時,使用 SharePoint Server 建立的信任層級。

Microsoft SharePoint Server 2010 可讓您設定沙箱化環境,以便網站集合管理員、網站管理員或資訊工作者可以在沙箱化工作者處理序中,部署及執行部分受信任的網頁組件與解決方案。在沙箱化環境中執行的網頁組件與解決方案對伺服器作業系統與硬體的存取權限有限,並與 Web 應用程式的其他部分隔離。

如需使用沙箱化解決方案的詳細資訊,請參閱<沙箱化解決方案管理 (SharePoint Server 2010)>。

SharePoint Server 會使用一些由 Microsoft .NET Framework 所提供的設定管理設定。這些設定有一部分儲存在 XML 設定檔,並提供廣泛的設定,讓伺服器管理員管理 Web 應用程式及其環境。如需 ASP.NET 設定檔的詳細資訊,請參閱 MSDN Library Online<保護 ASP.NET 應用程式和 Web 服務>中所說明的 Machine.Config 和 Web.Config 說明(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=103450&clcid=0x404)(可能為英文網頁)。

設定選項

系統管理員可以在以下兩個位置中選擇其一,將 ASP.NET 網頁組件部署至 SharePoint Server 的部署:

  • Bin 目錄   儲存於 Web 應用程式根目錄下的 bin 資料夾。

  • 全域組件快取 (GAC)   所有標準網頁組件都會自動與 .NET Framework 的 Common Language Runtime 一起安裝在 GAC (位於 %windir%\assembly) 中。儲存在 GAC 中的網頁組件可以在應用程式之間共用。

下表說明每個位置的優缺點。

部署位置 優點 缺點

Bin 目錄

部分信任位置。從此目錄執行的程式碼預設具有低層級的程式碼存取安全性權限。如果網頁組件需要不同應用程式的存取權,或比預設權限所允許更多的存取權,則管理員必須明確地提高授與網頁組件的權限,使其正常運作。管理員可能偏好在 Bin 目錄中執行組件,並使用基本的一組已知必要程式碼存取安全性權限。

由於 Bin 目錄是 Web 應用程式特有的,因此若要將程式碼隔離至單一 Web 應用程式,可以使用此方法。

若要在任意位置執行網頁組件,則必須將組件部署至每部伺服器上的 Bin 目錄。

GAC

您可以部署簽署組件的全域位置,預設會以完全信任執行組件。由於會以全域方式安裝組件,因此可以在任何 Web 應用程式中運作。

一般而言,安裝至 GAC 的程式碼沒有任何程式碼存取安全性限制;因此,您會失去深入防禦安全性的優點。

此外,很難將您的程式資料庫 (.pdb) 檔案部署至 GAC 中的組件。

設定安全性屬性

儲存在 Bin 目錄中的 ASP.NET 網頁組件有其他安全性屬性。您可以決定是否要設定網頁組件的這些屬性,這取決於您規劃使用網頁組件的方式。

Bin 目錄是一個部分信任位置。因此,網頁組件在執行時,不會自動獲取完全信任程式碼權限。因為只將部分信任權限授與在網頁組件內呼叫的程式碼,所以網頁組件開發人員必須在 ASP.NET 網頁組件上設定 AllowPartiallyTrustedCallers 屬性。

使用 AllowPartiallyTrustedCallers 屬性將元件標示為「安全」,會將安全實作的責任放在開發小組身上。

Bin 目錄的程式碼存取安全性權限預設非常低。您應謹慎測試網頁組件,以確定所要指派的正確權限等級,及確保網頁組件不對環境構成安全性風險。

您可以使用下列其中一種方法提高權限:

  • (建議) 建立信任原則檔案,並將 Web.config 檔案指向此新檔案。此選項較為複雜,但是可以讓您設定精確的網頁組件權限。如需信任原則檔案的詳細資訊,請參閱 MSDN Library Online 中的 Microsoft Windows SharePoint Services 和程式碼存取安全性(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=103436&clcid=0x404)(可能為英文網頁)。

  • 提高 Bin 目錄的整體信任層級。在 Web 應用程式根目錄的 Web.config 檔案中,找到 trust 元素。trust 元素的 level 屬性之預設值為 WSS_Minimal。您可以將此層級變更為 WSS_Medium。雖然此選項較簡單,但是它會授與您可能不需要的任何新權限,而且比建立信任原則檔案的安全性低。

安全控制項清單

SharePoint 產品的基本假設是不受信任使用者可以在執行 SharePoint Server 的系統內上傳並建立 .aspx 頁面。這些使用者應該無法在 .aspx 頁面內新增伺服器端程式碼,但是應該會有那些不受信任使用者可以使用的核准控制項清單。在 SharePoint Server 中,此清單是由「安全控制項」清單所提供。

「安全控制項」清單包含 SharePoint 網站特有的控制項與網頁組件名稱,伺服器管理員可以將它們指定為安全,以在網站的任何 .aspx 頁面上呼叫。此清單是 Web 應用程式根中之 Web.config 檔案的一部分。

部署及設定網頁組件

您用於部署新網頁組件的方法,將取決於開發人員提供的完成套件。如果開發人員以單一動態連結程式庫 (DLL) 檔案的形式提供網頁組件,您可以將 DLL 複製到 Web 應用程式的 Bin 資料夾,手動加以部署。如果開發人員提供您內含網頁組件的 CAB 檔案,則可以使用 Windows PowerShell 部署網頁組件。

手動部署及設定網頁組件

  1. 確認您具備下列管理認證:

    • 您必須是主控 SharePoint Server 之伺服器上本機管理員群組的成員。
  2. 將專案 Bin 目錄中的 <您的網頁組件名稱>.dll 組件複製到 Web 應用程式根目錄中的 Bin 目錄。例如:C:\inetpub\wwwroot\wss\VirtualDirectories\80\。

  3. 在應用程式根目錄中尋找 Web.config 檔案,並開啟以進行編輯。

  4. 為自訂組件將下列安全控制項目新增至 Web.config 檔案:

    <SafeControl Assembly="<YourWebPartName>, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="<YourWebPartNamespace>" TypeName="*" Safe="True" AllowRemoteDesigner="True"/>
    

    其中:

    1. <您的網頁組件名稱> 是要部署的網頁組件名稱。

    2. <您的網頁組件命名空間> 是與網頁組件相關聯的命名空間。

手動將網頁組件安裝至 Bin 資料夾或手動變更 Web.config 檔案的替代方式,是使用 Windows PowerShell 安裝網頁組件套件。為了讓此程序運作,開發人員或系統管理員必須建立網頁組件的 CAB 方案套件。如需建立 CAB 套件的詳細資訊,請參閱 MSDN Library Online 中的方案及網頁組件套件(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=95855&clcid=0x404)(可能為英文網頁) 文件。建立 CAB 檔案之後,請遵循下列步驟以部署網頁組件。

使用 Windows PowerShell 部署網頁組件

  1. 請確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 在 [開始] 功能表上,按一下 [所有程式]。

  3. 按一下 [Microsoft SharePoint 2010 產品]。

  4. 按一下 [SharePoint 2010 管理命令介面]。

  5. 在 Windows PowerShell 命令提示字元 (PS C:\>) 處,輸入下列命令並按 ENTER:

    Install-SPWebPartPack -LiteralPath "<PathToCabFile>" -Name "<WebPartName>"
    

    其中:

    • <Cab 檔案路徑> 是要部署之 CAB 檔案的完整路徑。

    • <網頁組件名稱> 是要部署的網頁組件名稱。

注意

前一程序說明使用 Install-SPWebPartPack 部署網頁組件的一般方式。您可以指定其他參數變更網頁組件的部署方式。如需詳細資訊,請參閱<Install-SPWebPartPack>。

注意

建議您在執行命令列管理工作時使用 Windows PowerShell。Stsadm 命令列工具已過時,但為與舊版產品相容,仍會隨附提供。

新增元件至網頁組件庫

每個網頁組件應該都會有一個 .webpart 檔案,是用以說明網頁組件的 XML 檔。.webpart 檔案也會使您的網頁組件出現在網頁組件庫中。下列程序是在部署網頁組件,並將其登錄在「安全控制項」清單之後,用以建立 .webpart 檔案最簡單的方式。

新增元件至網頁組件庫

  1. 確認您具備下列管理認證:

    • 您必須是伺服器陣列管理員群組的成員。
  2. 若要建立 .webpart 檔案,請瀏覽至 http://<我的伺服器>/_layouts/newdwp.aspx,其中 <我的伺服器> 是部署 SharePoint 網站之伺服器的名稱。

  3. 選取 <您的網頁組件命名空間>.<您的網頁組件名稱> 旁的核取方塊。

  4. 按一下 [擴展組件庫],以新增您的網頁組件名稱網頁組件至小組網站庫。

  5. 在網頁組件庫中,選取 [編輯] 以編輯網頁組件,然後按一下 [匯入]。

    系統會提示您指定 .webpart 檔案的位置。您也可以匯出 ASP.NET 網頁組件,再將其匯入 SharePoint 網站。