コントロールを安全なコントロールとしてマークする
セキュリティのために、SharePoint では、スクリプト インジェクションから保護されている Web コントロールと保護されていない Web コントロールが区別されます。 保護されたコントロール (安全なコントロール) は、信頼されていないユーザーがアクセスできます。 パッケージにアセンブリを追加するときに、SharePoint プロジェクト項目の "安全なコントロール エントリ" プロパティまたは "パッケージ デザイナー" で、コントロールを安全としてマークすることができます。 詳細については、「
- web.config ファイルの設定の変更に関するページ、および安全なコントロールとしての Web パーツ アセンブリの登録に関するページを参照してください。
重要
これらの手順は、説明を目的としています。 コントロールを安全としてマークするのは、コントロールが安全であることが確実である場合のみにしてください。
"安全なコントロール エントリ" プロパティでコントロールを安全としてマークする
"安全なコントロール エントリ" プロパティでコントロールを安全または安全でないとしてマークするには
視覚的 Web パーツ プロジェクトを使用して SharePoint ソリューションを作成します。
2 つのコントロール (テキスト ボックスとボタン) を Web パーツに追加します。 これらの名前は、それぞれ既定値の TextBox1 と Button1 のままにします。
Web パーツの "安全なコントロール エントリ" プロパティに 2 つのエントリを追加します。 これを行うには、[プロパティ] ウィンドウの [安全なコントロール エントリ] プロパティの 横にある省略記号 ( ) ボタンを選択します。
[安全なコントロール エントリ] ダイアログ ボックスが表示されます。
[安全なコントロール エントリ] ダイアログ ボックスで、[追加] ボタンを 2 回クリックして、[メンバー] ウィンドウに 2 つの安全なコントロール エントリ (1 つはボタン用、もう 1 つはテキスト ボックス用) を追加します。
1 つ目の安全なコントロール エントリを選択してから、[安全] プロパティの値を [False] に、その [型名] プロパティを [Button1] に、その [スクリプトに対して安全] プロパティを [False] に変更します。
この手順では、ボタン コントロールが安全でないコントロールとして識別されます。
一覧で 2 つ目の安全なコントロール エントリを選択します。 [安全] プロパティの値を [True] のままにして、その [型名] プロパティを [TextBox1] に設定し、その [スクリプトに対して安全] プロパティを [True] に設定します。
これでテキスト ボックス コントロールが、スクリプト インジェクションに対して安全なコントロールとしてマークされました。
[OK] をクリックしてダイアログ ボックスを閉じます。
パッケージ デザイナーでの安全なコントロールとしてマークする
パッケージ デザイナーでコントロールを安全または安全でないとしてマークするには
視覚的 Web パーツ プロジェクトを使用して SharePoint ソリューションを作成します。
2 つのコントロール (テキスト ボックスとボタン) を Web パーツに追加します。 これらの名前は、それぞれ既定値の TextBox1 と Button1 のままにします。
コントロールの名前空間は、後で使用するため、メモしておいてください。
メニュー バーで [ビルド]>[ソリューションのビルド] を選択してプロジェクトをビルドします。
別の SharePoint ソリューションを作成します。
ソリューション エクスプローラーで、Package.Package ファイルのショートカット メニューを開き、[開く] をクリックしてパッケージ デザイナーを開きます。
パッケージ デザイナーで、[詳細設定] タブを選択します。
[追加アセンブリ] で [追加] ボタンを選択し、一覧の [既存のアセンブリの追加] を選択します。
[既存のアセンブリの追加] ダイアログ ボックスで、[ソース パス] の横にある省略記号 () ボタンを選択します。
手順 1 で作成した SharePoint ソリューションからアセンブリを選択し、[開く] を選択します。
この例では、[配置ターゲット] オプションを GlobalAssemblyCache のままにします。
この手順により、アセンブリがシステムのグローバル アセンブリ キャッシュ (GAC) に配置されます。 アセンブリを Web アプリケーション (Bin) フォルダーに配置する場合は、代わりにそのオプションを選択します。 詳細については、「SharePoint Foundation で Web パーツを配置する」を参照してください。
[安全なコントロール] ボックスで、[新しい項目を追加するにはここをクリックします] を選択します。
次の表のプロパティの値を入力します。
プロパティ名 値 Namespace コントロールの完全修飾名前空間 (BdcModelProject1.VisualWebPart1 など)。 種類名 Button1 アセンブリ名 厳密なアセンブリ名 (Microsoft.Office.SharePoint.ClientExtensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c など)。 Safe [安全] チェック ボックスをオフにします。 スクリプトに対して安全 [スクリプトに対して安全] チェック ボックスをオフのままにします。 Note
パッケージ デザイナーの[詳細設定] タブで追加したアセンブリの [アセンブリ名] の値をトークンにすることはできません。これは厳密な名前付きアセンブリである必要があります。 詳しくは、「厳密な名前付きアセンブリの作成と使用」をご覧ください。
Tab キーを押して、別の安全なコントロール エントリを作成します。
[新しい項目を追加するにはここをクリックします] ボタンをもう一度選択します。
次の表のプロパティの値を入力します。
プロパティ名 値 Namespace コントロールの完全修飾名前空間 (BdcModelProject1.VisualWebPart1 など)。 種類名 TextBox1 アセンブリ名 厳密なアセンブリ名 (Microsoft.Office.SharePoint.ClientExtensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c など)。 Safe [安全] チェック ボックスをオンにします。 スクリプトに対して安全 [スクリプトに対して安全] チェック ボックスをオンにします。 Tab キーを押してから、[OK] ボタンを選択してダイアログ ボックスを閉じます。