SharePoint では、セキュリティのために、スクリプト インジェクションから保護されている Web コントロールと保護されていない Web コントロールが区別されます。保護されているコントロール (安全なコントロール) には、信頼されていないユーザーもアクセスできます。コントロールを安全としてマークするには、SharePoint プロジェクト項目の [安全なコントロール エントリ] プロパティを使用するか、パッケージにアセンブリを追加するときにパッケージ デザイナーを使用して設定します。詳細については、次のトピックを参照してください。
「web.config ファイルの設定変更」および「Registering a Web Part Assembly as a Safe Control (Web パーツ アセンブリを安全なコントロールとして登録する)」
重要 |
|---|
以降の手順は、単に説明のために記載されています。コントロールを安全としてマークするのは、安全であることがわかっている場合だけにしてください。 |
[安全なコントロール エントリ] プロパティでの安全なコントロールの指定
[安全なコントロール エントリ] プロパティでコントロールを安全または安全でないとしてマークするには
可視 Web パーツ プロジェクトを含む SharePoint ソリューションを作成します。
テキスト ボックスとボタンの 2 つのコントロールを Web パーツに追加します。名前は既定値 (TextBox1 と Button1) のままにしておきます。
Web パーツの [安全なコントロール エントリ] プロパティに 2 つのエントリを追加します。これを行うには、[プロパティ] のウィンドウの [安全なコントロール エントリ] のプロパティの横にある省略記号 (
) ボタンをクリックします。[安全なコントロール エントリ] ダイアログ ボックスが表示されます。
[安全なコントロール エントリ] のダイアログ ボックスで、[メンバー] のウィンドウに 2 個の安全なコントロール エントリを追加するに 追加 回のボタンを選択する: ボタンの 1 とテキスト ボックスの場合は 1。
一つ目の安全なコントロール エントリを選択し、falseに **[ボタン1]**に [セーフ] の [型名] のプロパティ、プロパティ、および falseに [スクリプトに対して安全] のプロパティの値を変更します。
これにより、このボタン コントロールは、安全でないコントロールとして指定されました。
リストの 2 番目の安全なコントロール エントリを選択します。true として [セーフ] のプロパティの値のままにして、[TextBox1] に [型名] のプロパティと trueに [スクリプトに対して安全] のプロパティを設定します。
これにより、このテキスト ボックス コントロールは、スクリプト インジェクションに対して安全なコントロールとしてマークされました。
ダイアログ ボックスを閉じるに [OK] のボタンをクリックします。
パッケージ デザイナーでの安全なコントロールの指定
パッケージ デザイナーでコントロールを安全または安全でないとしてマークするには
可視 Web パーツ プロジェクトを含む SharePoint ソリューションを作成します。
テキスト ボックスとボタンの 2 つのコントロールを Web パーツに追加します。名前は既定値 (TextBox1 と Button1) のままにしておきます。
後ほど使用するため、コントロールの名前空間を控えておきます。
メニュー バーで、プロジェクトをビルドするに [ビルド]、[ソリューションのビルド] を選択します。
SharePoint ソリューションをもう 1 つ作成します。
**[ソリューション エクスプローラー]**では、Package.package ファイルのショートカット メニューを開き、パッケージ デザイナーを開くに [開く] を選択します。
デザイナーをパッケージ化しますでは、[詳細設定] のタブをクリックします。
**[追加アセンブリ]**の下に、追加 のボタンを選択し、リストから [既存のアセンブリの追加] を選択します。
[既存のアセンブリの追加] のダイアログ ボックスで、**[ソース パス]**の横にある省略記号 (
) ボタンをクリックします。アセンブリを、手順 1 で作成した選択し、[開く] のボタンを選択します。SharePoint ソリューションから。
この例では、[配置ターゲット] オプションは "GlobalAssemblyCache" のままにしておきます。
これにより、アセンブリがシステムのグローバル アセンブリ キャッシュ (GAC: Global Assembly Cache) に配置されます。アセンブリを Web アプリケーション (Bin) フォルダーに配置する場合は、代わりにそのオプションを選択します。詳細については、「Deploying Web Parts in SharePoint Foundation (SharePoint Foundation での Web パーツの配置)」を参照してください。
[安全なコントロール] ボックスに、新しい項目を追加するには、ここをクリックしてください のボタンをクリックします。
次の表を使用してプロパティの値を入力します。
プロパティ名
値
名前空間
コントロールの完全修飾名前空間 ("BdcModelProject1.VisualWebPart1" など)。
[型の名前]
Button1
[アセンブリ名]
厳密なアセンブリ名 ("Microsoft.Office.SharePoint.ClientExtensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" など)。
[安全]
[安全] チェック ボックスをオフにします。
[スクリプトに対して安全]
[スクリプトに対して安全] チェック ボックスをオフのままにします。
[!メモ]
パッケージ デザイナーの [詳細設定] タブを使用して追加したアセンブリでは、[アセンブリ名] の値をトークンにすることはできません。厳密な名前付きアセンブリを指定する必要があります。詳細については、「Creating and Using Strong-Named Assemblies (厳密な名前付きアセンブリの作成と使用)」を参照してください。
別の安全なコントロール エントリを作成するには、Tab キーを選択します。
新しい項目を追加するには、ここをクリックしてください のボタンをもう一度クリックします。
次の表を使用してプロパティの値を入力します。
プロパティ名
値
名前空間
コントロールの完全修飾名前空間 ("BdcModelProject1.VisualWebPart1" など)。
[型の名前]
TextBox1
[アセンブリ名]
厳密なアセンブリ名 ("Microsoft.Office.SharePoint.ClientExtensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" など)。
[安全]
[安全] チェック ボックスをオンにします。
[スクリプトに対して安全]
[スクリプトに対して安全] チェック ボックスをオンにします。
Tab キーを選択して、ダイアログ ボックスを閉じるに [OK] のボタンをクリックします。
重要