在 SharePoint Server 中設定及部署網頁組件

適用于:yes-img-132013 yes-img-16 2016yes-img-192019 yes-img-se訂閱版本 no-img-sopMicrosoft 365 中的 SharePoint

SharePoint Server includes a set of web parts that users can add to pages after installing the product. If an organization needs custom web parts, a developer can write custom ASP.NET web parts and ask you to install them. This process typically requires testing and approval of the code before the web part can be deployed in a full-trust environment. A developer who uses Visual Studio can deploy a web part to SharePoint Server by right clicking the project and selecting Deploy. The destination for the web part is determined by the trust level established with the SharePoint server when the developer created the project in Visual Studio.

SharePoint Server 使用 Microsoft .NET Framework 所提供的一些設定管理設定。 其中一些設定儲存在 XML 設定檔案中,並且提供更大範圍的設定,讓伺服器管理員用來管理 Web 應用程式和其環境。 如需 ASP.NET 設定檔案的詳細資訊,請參閱<保護 ASP.NET 應用程式和 Web 服務>的 Machine.Config 和 Web.Config 說明

設定選項

ASP.NET 網頁組件會部署至 SharePoint Server bin 目錄全域組件快取 (GAC)

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

    此位置的優點:

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

    此位置的缺點:

    若要在任何位置執行網頁組件,則必須在具有 MinRole 前端和應用程式服務角色的每個 SharePoint Server 2016 伺服器中,將組件部署至 Bin 目錄,且每個 SharePoint 2013 伺服器都已安裝 Web 和應用程式角色。

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

    此位置的優點:

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

    此位置的缺點:

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

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

設定安全性屬性

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

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

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

Bin 目錄和其內容預設會獲指派最低程式碼存取安全性權限。 您應該仔細地測試網頁組件,以判斷要指派的正確權限層級,以及確定網頁組件不會對環境造成安全性風險。

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

  • (建議) 建立信任原則檔案,並指向新檔案的 Web.config 檔案。 此選項較為複雜,但是可讓您設定網頁組件的精確權限。 如需信任原則檔案的詳細資訊,請參閱 Microsoft Windows SharePoint Services 和程式碼存取安全性

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

    注意

    Web.config 檔案中的 WSS_MinimalWSS_Medium 項目區分大小寫。

安全控制項清單

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

部署及設定網頁組件

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

手動部署及設定網頁組件

  1. 確認是否具備下列系統管理認證:

    • 您必須是主控 SharePoint Server 之伺服器上本機管理員群組的成員。
  2. 將專案 Bin 目錄中的YourWebPartName >.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"/>
    

    其中:

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

    • <YourWebPartNamespace> 是與網頁組件相關聯的命名空間。

將網頁組件手動安裝至 Bin 資料夾或手動變更 Web.config 檔案的替代方式,是使用 PowerShell 來安裝網頁組件套件。 為了讓此程序運作,開發人員或系統管理員必須建立網頁組件的 CAB 解決方案套件。 建立 CAB 檔案之後,請遵循這些步驟來部署網頁組件。

使用 Microsoft PowerShell 部署網頁組件

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

  2. 啟動 SharePoint 管理命令介面。

  3. 在 PowerShell 命令提示字元 (PS C:\ >) ,輸入下列命令,然後按 ENTER:

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

    其中:

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

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

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

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

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

將元件新增至網頁組件庫

  1. 確認是否具備下列系統管理認證:

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

  3. 選取YourWebPartNamespace 旁邊 < 的複選 > 框。 <YourWebPartName >

  4. 按一下 [填入資源庫 ] 將 YourWebPartName 網頁元件新增至小組網站資源庫。

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

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

另請參閱

概念

在 SharePoint Server 中管理網頁組件

其他資源

如何在遠端伺服器上部署、發佈和升級 SharePoint 解決方案