逐步解說:在 Office 方案中授與及移除使用權限 (2003 系統)

更新:2007 年 11 月

適用於

本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。

專案類型

  • 文件層級專案

  • 應用程式層級專案

Microsoft Office 版本

  • Microsoft Office 2003

如需詳細資訊,請參閱依應用程式和專案類型提供的功能

本逐步解說將示範 Visual Studio Tools for Office 中安全性的基本概念。

此逐步解說會說明以下工作:

  • 移除預設安全性設定

  • 加入一組新的使用權限

必要條件

您需要下列元件才能完成此逐步解說:

  • Visual Studio Tools for Office (Visual Studio 2008 Professional 和 Visual Studio Team System 的選擇性元件)。

  • Microsoft Office Excel 2003

建立專案

在這個步驟中,會建立一個 [Excel 活頁簿] 專案。

若要建立新的專案

  • 使用 Office 2003 的專案範本建立 [Excel 文件] 專案,並命名為 My Security Test。

    本逐步解說中的步驟會假設您將專案儲存至 C:\Walkthroughs。在精靈中選取 [建立新文件]。如需詳細資訊,請參閱 HOW TO:建立 Visual Studio Tools for Office 專案

Visual Studio 會在設計工具中開啟新的 Excel 活頁簿,並將 My Security Test 專案加入至 [方案總管]。

加入工作表的後置程式碼

此專案需要一些程式碼,您才能執行以測試安全性是否已正確設定。在本逐步解說中,請將訊息方塊加入至工作表的初始化事件中。

若要將訊息方塊加入至初始化事件

  1. 驗證 [My Security Test.xls] 活頁簿在 Visual Studio 設計工具中已開啟,並顯示 Sheet1。

  2. 在 [方案總管] 中,在 [Sheet1.vb] 或 [Sheet1.cs] 上按一下滑鼠右鍵,再按快速鍵功能表上的 [檢視程式碼]。

  3. 將下列程式碼加入至 Sheet1 類別內的 Startup 方法,以在初始化期間顯示訊息方塊。

    Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Startup
    
        MessageBox.Show("Security settings are correct.")
    End Sub
    
    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        MessageBox.Show("Security settings are correct.");
    }
    
  4. 按 F5 執行專案。

    Excel 隨即啟動且訊息方塊便會出現。

  5. 關閉訊息方塊。

  6. 關閉 Excel。

  7. 在 Visual Studio 設計工具中,尋找並選取 [My Security Test.xls] 的索引標籤。

  8. 在 Visual Studio 設計工具中關閉 [My Security Test.xls] (Excel 工作表設計介面)。

    您必須關閉所有開啟的 Excel 執行個體後,才能變更安全性原則。

在建置 Excel 活頁簿專案時,精靈會在使用者層級,將新的安全性程式碼群組和子程式碼群組加入至安全性原則。

接下來,移除精靈所建立的程式碼群組。

移除預設程式碼群組

尋找並移除建立的預設程式碼群組。

若要移除程式碼群組

  1. 在 [控制台] 中,開啟 [系統管理工具]。

  2. 執行 [Microsoft .NET Framework 2.0 組態]。

    [Microsoft .NET Framework 2.0 組態] 工具未隨附於 Visual Studio 2008 中。您可以從 Microsoft 下載中心下載並安裝此工具做為 .NET Framework 2.0 SDK 的一部分。如需範例,請參閱 .NET Framework 2.0 軟體開發套件 (SDK) (x86)

  3. 在樹狀檢視窗格中,依序展開 [.NET Framework 2.0 組態]、[我的電腦]、[執行階段安全性原則]、[使用者]、[程式碼群組]、[All_Code] 和 [VSTOProjects]。

    您所建立的每個專案都有一個 GUID。展開每個 GUID,以查看相關聯文件的路徑。

  4. 以滑鼠右鍵按一下 [C:\Walkthroughs\My Security Test\My Security Test\bin\My Security Test.xls] 程式碼群組的 GUID,再按一下快速鍵功能表中的 [刪除]。

    對話方塊隨即出現,詢問您是否確定要刪除這個程式碼群組。

  5. 按一下 [是]。

  6. 回到 Visual Studio,然後按 F5 執行 My Security Test 專案。

    錯誤訊息隨即出現,說明目前的 .NET 安全性原則不允許該自訂執行。

  7. 按一下 [確定]。

  8. 關閉 Excel。

如果組件在 Microsoft .NET Framework 安全性原則中沒有明確的使用權限,則該組件無法執行。

接下來,使用強式名稱而非辨識項的 URL 對組件授與使用權限。

為組件提供強式名稱

強式名稱一般比做為辨識項的 URL 更安全。您可以在 Visual Studio 中建立強式名稱並將其指派給組件。

若要建立強式名稱

  1. 在 Visual Studio 的 [專案] 功能表上,按一下 [My Security Test Properties]。

  2. 按一下 [簽署] 索引標籤。

  3. 選取 [組件簽署]。

  4. 在 [選擇強式名稱金鑰檔] 清單中,按一下 [新增]。

  5. 在 [建立強式名稱金鑰] 對話方塊的 [金鑰檔名稱] 方塊中,輸入 SecurityTestKey。

  6. 清除 [以密碼保護我的金鑰檔] 核取方塊。

  7. 按一下 [確定]。

    金鑰檔 [SecurityTestKey.snk] 隨即會出現在 [方案總管] 中。

  8. 在 [建置] 功能表上,按一下 [建置方案],以針對強式名稱金鑰組建置組件。

注意事項:

維持金鑰檔的安全非常重要。一般情況下,您應該使用密碼保護金鑰,也應該採取相關措施,避免未經授權的人員取得該檔案的存取權。金鑰檔是許多信任決策的基礎。您只能將金鑰檔提供給值得信賴又有責任感的人。如果惡意使用者取得您的金鑰檔並找到密碼,該使用者就可以建立看起來像是您撰寫的惡意組件。

根據強式名稱授與信任

現在加入新程式碼群組,以根據強式名稱對組件授與完全信任。

若要根據強式名稱授與信任

  1. 重新開啟 [Microsoft .NET Framework 2.0 組態]。

  2. 在 [VSTOProjects] 節點上按一下滑鼠右鍵,再按一下快速鍵功能表上的 [新增]。

  3. 輸入 [安全性測試強式名稱] 做為新程式碼群組的名稱,然後按一下 [下一步]。

  4. 在 [選擇這個程式碼群組的條件類型] 清單中,按一下 [強式名稱]。

  5. 按一下 [匯入]。

  6. 瀏覽至 C:\Walkthroughs\My Security Test\My Security Test\bin\My Security Test.dll (針對 Visual Basic) 或 C:\Walkthroughs\My Security Test\My Security Test\bin\debug\My Security Test.dll (針對 C#),然後按一下 [開啟]。

  7. 按一下 [下一步]。

  8. 按一下 [下一步],接受 [FullTrust] 使用權限集合,再按一下 [完成]。

  9. 關閉 [Microsoft .NET Framework 2.0 組態]。

測試應用程式

現在您可以測試專案,以確保開啟活頁簿時,程式碼會執行。

若要測試您的活頁簿

  1. 請按 F5 執行您的專案。

  2. 確認訊息方塊是否會出現。

請參閱

工作

HOW TO:將使用權限授與資料夾和組件 (2003 系統)

HOW TO:從資料夾和組件移除使用權限 (2003 系統)

概念

執行 Office 方案的安全性需求 (2003 系統)

Office 方案的安全性最佳作法 (2003 系統)

其他資源

Office 方案中的安全性 (2003 系統)