Share via


チュートリアル : 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 のプロジェクト テンプレートを使用して、My Security Test という名前の Excel ブック プロジェクトを作成します。

    このチュートリアルの手順では、プロジェクトを C:\Walkthroughs に保存するものとします。ウィザードで、[新規ドキュメントの作成] をクリックします。詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。

Visual Studio により、デザイナで新しい Excel ブックが開き、My Security Test プロジェクトがソリューション エクスプローラに追加されます。

ワークシートの分離コードの追加

セキュリティが正しく設定されているかどうかをテストするには、プロジェクトにコードを追加する必要があります。このチュートリアルでは、ワークシートの初期化イベントにメッセージ ボックスを追加します。

初期化イベントにメッセージ ボックスを追加するには

  1. Visual Studio デザイナで My Security Test.xls ブックを開いていて、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 Software Development Kit の一部としてダウンロードできます。例については、「.NET Framework 2.0 SDK 日本語版 (x86)」を参照してください。

  3. ツリー ビュー パネルで、[.NET Framework 2.0 Configuration][マイ コンピュータ][ランタイム セキュリティ ポリシー][ユーザー][コード グループ][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. [OK] をクリックします。

  8. Excel を終了します。

Microsoft .NET Framework セキュリティ ポリシーに明示的なアクセス許可がなければ、アセンブリは実行できません。

次に、URL の代わりに厳密な名前を証拠として使用して、アセンブリにアクセス許可を付与します。

アセンブリの厳密な名前の指定

一般に、厳密な名前は証拠として URL より安全です。Visual Studio では、厳密な名前を作成し、それをアセンブリに割り当てることができます。

厳密な名前を作成するには

  1. Visual Studio で、[プロジェクト] メニューの [My Security Test のプロパティ] をクリックします。

  2. [署名] タブをクリックします。

  3. [アセンブリの署名] を選択します。

  4. [厳密な名前のキー ファイルを選択してください] ボックスの一覧の [新規作成] をクリックします。

  5. [厳密な名前キーの作成] ダイアログ ボックスの [キー ファイル] ボックスに「SecurityTestKey」と入力します。

  6. [キーファイルをパスワードで保護する] チェック ボックスをオフにします。

  7. [OK] をクリックします。

    ソリューション エクスプローラにキー ファイル SecurityTestKey.snk が表示されます。

  8. [ビルド] メニューの [ソリューションのビルド] をクリックして、アセンブリを厳密な名前のキー ペアでビルドします。

0c0116yz.alert_note(ja-jp,VS.90).gifメモ :

キー ファイルを安全に保管しておくことが大切です。通常、パスワードで保護し、承認されていないユーザーがアクセスできないように措置を講じる必要があります。キー ファイルは、多くの場合、信頼決定のベースとして使用されます。キー ファイルを与えるのは、信頼が置け、責任感があると思われる人のみにしてください。悪意のあるユーザーがキー ファイルを手に入れ、パスワードを突き止めた場合、正規のユーザーになりすまして悪意のあるアセンブリを作成できます。

厳密な名前に基づいた信頼の付与

ここで、新しいコード グループを追加して、厳密な名前に基づいてアセンブリに完全な信頼を付与します。

厳密な名前に基づいて信頼を付与するには

  1. [Microsoft .NET Framework 2.0 構成] をもう一度開きます。

  2. [VSTOProjects] ノードを右クリックし、ショートカット メニューの [新規作成] をクリックします。

  3. 新しいコード グループに「Security Test Strong Name」という名前を入力し、[次へ] をクリックします。

  4. [このコード グループの条件の種類を選択します] ボックスの一覧の [厳密な名前] をクリックします。

  5. [インポート] をクリックします。

  6. Visual Basic の場合は C:\Walkthroughs\My Security Test\My Security Test\bin\My Security Test.dll、C# の場合は \Walkthroughs\My Security Test\My Security Test\bin\debug\My Security Test.dll に移動し、[開く] をクリックします。

  7. [次へ] をクリックします。

  8. [次へ] をクリックして [FullTrust] アクセス許可セットを受け入れ、[完了] をクリックします。

  9. [Microsoft .NET Framework 2.0 構成] を閉じます。

アプリケーションのテスト

これで、プロジェクトをテストして、ブックを開いたときにコードが実行されることを確認できます。

ブックをテストするには

  1. F5 キーを押してプロジェクトを実行します。

  2. メッセージ ボックスが表示されることを確認します。

参照

処理手順

方法 : フォルダおよびアセンブリにアクセス許可を付与する (2003 システム)

方法 : フォルダおよびアセンブリからアクセス許可を削除する (2003 システム)

概念

Office ソリューションの実行に必要なセキュリティ条件 (2003 システム)

Office ソリューションのセキュリティに関するベスト プラクティス (2003 システム)

その他の技術情報

Office ソリューションにおけるセキュリティ (2003 システム)