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 回クリックして、[メンバー] ペインに安全なコントロール エントリを 2 つ (ボタン用とテキスト ボックス用) 追加します。
1 つ目の安全なコントロール エントリをクリックして、[安全] プロパティを [False] に変更し、[型の名前] プロパティを "Button1" に変更し、[スクリプトに対して安全] プロパティを [False] に変更します。
これにより、このボタン コントロールは、安全でないコントロールとして指定されました。
一覧の 2 つ目の安全なコントロール エントリをクリックして、 [安全] プロパティは [True] のままにし、[型の名前] プロパティを "TextBox1" に設定し、[スクリプトに対して安全] プロパティを [True] に設定します。
これにより、このテキスト ボックス コントロールは、スクリプト インジェクションに対して安全なコントロールとしてマークされました。
[OK] をクリックし、ダイアログ ボックスを閉じます。
パッケージ デザイナーでの安全なコントロールの指定
パッケージ デザイナーでコントロールを安全または安全でないとしてマークするには
可視 Web パーツ プロジェクトを含む SharePoint ソリューションを作成します。
テキスト ボックスとボタンの 2 つのコントロールを Web パーツに追加します。 名前は既定値 (TextBox1 と Button1) のままにしておきます。
後ほど使用するため、コントロールの名前空間を控えておきます。
[ビルド] メニューの [ソリューションのビルド] をクリックしてプロジェクトをビルドします。
SharePoint ソリューションをもう 1 つ作成します。
ソリューション エクスプローラーで Package.Package ファイルをダブルクリックして、パッケージ デザイナーを開きます。
パッケージ デザイナーで、[詳細設定] タブをクリックします。
[追加アセンブリ] で、[追加] をクリックして [既存のアセンブリの追加] を選択します。
[既存のアセンブリの追加] ダイアログ ボックスが表示されます。
[既存のアセンブリの追加] ダイアログ ボックスで、[ソース パス] の横にある省略記号 (
) ボタンをクリックします。
この例では、[配置ターゲット] オプションは "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 キーを押して、安全なコントロール エントリをもう 1 つ作成します。
もう一度 [新しい項目を追加するにはここをクリックします] をクリックします。
次の表を使用してプロパティの値を入力します。
プロパティ名
値
[名前空間]
コントロールの完全修飾名前空間 ("BdcModelProject1.VisualWebPart1" など)。
[型の名前]
TextBox1
[アセンブリ名]
厳密なアセンブリ名 ("Microsoft.Office.SharePoint.ClientExtensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" など)。
[安全]
[安全] チェック ボックスをオンにします。
[スクリプトに対して安全]
[スクリプトに対して安全] チェック ボックスをオンにします。
[OK] をクリックし、ダイアログ ボックスを閉じます。