管理Web部件
Web部件是在SharePoint網站的頁面上呈現信息的模塊式元素。
Web部件頁是一個Web部件的集合,他可以將列表數據、即時信息或有用的圖形組合到一個動態的網頁中。Web部件頁的布局和內容可以針對所有用戶進行設置,也可以針對每個用戶進行個性化設置。
Web部件可以使用在Web部件頁、Wiki網頁、內容頁、發布網頁等。
網站所有者或具有相應權限的網站成員可以通過使用浏覽器添加、重新配置或移除Web部件來創建和自定義Web部件頁。
可以將Web部件配置為在沙盒解決方案中運行,沙盒解決方案可以防止Web部件訪問某些本地或網絡資源,從而保護SharePoint server服務器場上的其他內容和解決方案。通過實現沙盒解決方案,用戶可以將自己的Web部件添加到宿主環境中,開發人員也可以添加尚未經過徹底測試的Web部件來用於生產。
在SharePoint server中,Web部件基礎架構位於ASP.NET Web部件基礎架構的上一層。為了有效保護SharePoint網站,服務器管理員必須熟悉ASP.NET的安全准則和最佳實踐。
Web部件頁和控件的安全
保護 Web 部件頁和控件是一項需要協作完成的工作。開發人員、網站管理員和服務器管理員必須協同工作以提高 Web 部件和 Web 部件頁的安全性。開發人員應驗證 Web 部件輸入以阻止服務器攻擊。服務器管理員必須將 Internet Information Services (IIS) 配置為使用適當的身份驗證方法。
服務器管理員還要配置 Web 部件解決方案並將其部署到 Web 服務器或 Web 服務器場。在部署解決方案之後,網站管理員或服務器管理員可以定義針對 Web 部件頁的權限級別和訪問權限。
負責配置針對 Web 部件頁和 Web 部件的權限的安全角色。
角色 類別 適用於 說明 開發人員 輸入驗證 Web 部件代碼 輸入驗證是指應用程序在執行其他處理之前如何篩選、清理或拒絕輸入。這包括驗證應用程序接收的輸入是否有效和安全。 服務器管理員 身份驗證 IIS 身份驗證是指一個實體驗證另一個實體的身份的過程,通常使用憑據(例如用戶名和密碼)進行驗證。 網站管理員/服務器管理員 授權 網站集 授權是指通過確定哪些用戶可以對給定對象執行特定操作,從而提供對網站、列表、文件夾或項目的訪問控制的過程。授權過程假定用戶已經過身份驗證。 服務器管理員 配置管理 .NET Framework 配置 配置管理包含各種各樣的設置,利用這些設置,管理員可以管理 Web 應用程序及其環境。這些設置存儲在 XML 配置文件中,其中一些設置可控制計算機范圍的設置,而另一些設置可控制特定於應用程序的配置。可以在配置文件中定義特殊的安全約束,也可以定義計算機級別的代碼訪問安全權限。
配置和部署Web部件
Microsoft SharePoint Server 包含一組用戶可在安裝該產品後添加到頁面中的 Web 部件。如果組織需要自定義 Web 部件,開發人員可以編寫自定義 ASP.NET Web 部件,並要求您將這些部件安裝到 SharePoint Server 的部署中。此過程通常需要先測試並批准代碼,然後才能在完全信任環境中部署 Web 部件。使用 Visual Studio 2010 的開發人員可以通過右鍵單擊相應項目並選擇“部署”,將某個 Web 部件部署到 SharePoint Server 中。Web 部件的目標由開發人員在 Visual Studio 2010 中創建項目時使用 SharePoint 服務器建立的信任級別確定。
通過 Microsoft SharePoint Server 2010 可以配置一個沙盒環境,在此環境中,網站集管理員、網站管理員或信息工作者可以在沙盒工作進程中部署和運行部分受信任的 Web 部件和解決方案。在沙盒環境中運行的 Web 部件和解決方案具有針對服務器操作系統和硬件的有限訪問權限,而且它們與 Web 應用程序的其他部件是隔離的
配置選項
系統管理員可以將ASP.NET Web部件部署到SharePoint Server的以下任一位置:
·Bin目錄
存儲在Web應用程序的根目錄下的bin文件夾中。
·全局程序集緩存(GAC)
所有標准的Web部件都會自動安裝到.NET Framework的公共語言運行時坐在的GAC中。可以在各個應用程序之間共享存儲在GAC中的Web部件。
部署位置
優點
缺點
Bin 目錄
一個部分信任的位置。默認情況下,從該目錄運行的代碼具有較低級別的代碼訪問安全權限。如果 Web 部件需要跨應用程序進行訪問或訪問超過默認權限允許范圍的內容,則管理員必須明確提升授予 Web 部件的權限,這樣它才能正常工作。管理員可能會希望程序集在 Bin 目錄中運行,並使用已知最小的必需代碼訪問安全權限集。
由於 Bin 目錄特定於 Web 應用程序,因此,如果您希望將代碼隔離到單個 Web 應用程序,則可以使用此方法。
若要在任意位置運行 Web 部件,則必須將程序集部署到每台服務器上的 Bin 目錄中。
GAC
一個可用來部署已簽名程序集的全局位置,默認情況下,已簽名程序集可在完全信任模式下運行。由於對這些程序集進行了全局安裝,因此可以在任何 Web 應用程序中使用它們。
通常,對於已安裝到 GAC 的代碼,沒有任何代碼訪問安全限制;因此,您將無法獲得深度防御安全。
此外,很難將程序數據庫 (.pdb) 文件部署到 GAC 內的程序集。
設置安全屬性
存儲在 Bin 目錄中的 ASP.NET Web 部件具有其他安全屬性。您可以決定是否為 Web 部件設置這些屬性,具體取決於您打算如何使用 Web 部件。
Bin 目錄是一個部分信任的位置。因此,Web 部件在執行時不會自動授予完全信任代碼權限。由於對調用 Web 部件的代碼僅授予部分信任權限,因此 Web 部件開發人員必須對 ASP.NET Web 部件設置 AllowPartiallyTrustedCallers 屬性。
注意:使用 AllowPartiallyTrustedCallers 屬性將組件標記為“安全”時,開發團隊負有安全實施的責任。
默認情況下,Bin 目錄的代碼訪問安全權限非常低。您應仔細測試您的 Web 部件,以確定要分配的正確權限級別,確保 Web 部件不會給您的環境帶來安全風險。
可以通過兩種方式提升權限:
·(建議)創建一個信任策略文件並將 Web.config 文件指向這個新文件。雖然這種方式更為復雜,但它使您能夠設置 Web 部件的精確權限。
·提升 Bin 目錄的整體信任級別。在 Web 應用程序根目錄下的 Web.config 文件中,找到 trust 元素。trust 元素的 level 屬性的默認值為 WSS_Minimal。可以將此級別更改為 WSS_Medium。雖然這種方式更為簡單,但它將授予您可能不需要的任意新權限,並且此方式的安全性沒有創建信任策略文件的安全性高。
安全控件列表
SharePoint 產品的基本假定是不受信任的用戶可以在運行 SharePoint Server 的系統內上載和創建 .aspx 頁。雖然應阻止這些用戶在 .aspx 頁內添加服務器端代碼,但應提供一個可供這些不受信任用戶使用的已批准控件的列表。在 SharePoint Server 中,此列表由安全控件列表提供。
安全控件列表包含特定於 SharePoint 網站的控件和 Web 部件的名稱,服務器管理員可以指定在網站內的任何 .aspx 頁上調用這些控件和 Web 部件是安全的。此列表是 Web 應用程序根目錄下的 Web.config 文件的一部分。
部署和配置Web部件
用於部署新 Web 部件的方法將取決於開發人員提供的已完成包。
·如果開發人員以單個動態鏈接庫 (DLL) 文件的形式向您提供 Web 部件,則可以手動將 DLL 復制到 Web 應用程序的 Bin 文件夾中來進行部署。
·如果開發人員向您提供包含 Web 部件的 CAB 文件,則可以使用 Windows PowerShell 部署 Web 部件。
手動部署和配置Web部件
1.驗證您是否擁有以下管理憑據:您必須是承載 SharePoint Server 的服務器上的本地 Administrators 組的成員。
2.將項目的 Bin 目錄中的 .dll 程序集復制到 Web 應用程序根目錄中的 Bin 目錄。例如:C:\inetpub\wwwroot\wss\VirtualDirectorIEs\80\。
3.在應用程序根目錄中找到 Web.config 文件並將其打開以進行編輯。
4.將自定義程序集的以下安全控制項添加到 Web.config 文件:
其中:
·是正在部署的 Web 部件的名稱。
·是與 Web 部件關聯的命名空間。
使用Windows PowerShell部署Web部件
1.在“開始”菜單上,單擊“所有程序”。
2.單擊“Microsoft SharePoint 2010 產品”。
3.單擊“SharePoint 2010 Management Shell”。
4.在 Windows PowerShell 命令提示符 (PS C:\>) 處,鍵入以下命令,然後按 Enter:
Install-SPWebPartPack -LiteralPath "" -Name ""
其中:
·是正在部署的 CAB 文件的完整路徑。
·是正在部署的 Web 部件的名稱。
將組件添加到Web部件庫
每個Web部件都應具有一個.webpart文件,該文件是一個用於描述Web部件的XML文件。.Webpart文件會使Web部件出現Web部件庫中。
1.驗證您是否擁有以下管理憑據:您必須是 Farm Administrators 組的成員。
2.若要創建 .webpart 文件,請導航至 http:///_layouts/newdwp.aspx,其中 是用於部署 SharePoint 網站的服務器的名稱。
3.選中 . 旁邊的復選框。
4.單擊“導入庫”以將 YourWebPartName Web 部件添加到工作組網站庫中。
5.在 Web 部件庫中選擇“編輯”來編輯 Web 部件,然後單擊“導入”。
系統會提示您指定 .webpart 文件的位置。您也可以導出 ASP.NET Web 部件並將其導入到 SharePoint 網站。