コードを含むフォームを発行する

サイト コレクション管理者はだれでも、InfoPath Designer の発行ウィザードから直接、SharePoint 上のフォーム ライブラリに、コードを含むフォームを発行できます。 コードはセキュリティ保護された "サンドボックス" 環境の中で実行されるので、悪意のあるコードがサーバーに害を与えることはありません。 このことを、"サンドボックス ソリューションの発行"、または "SharePoint サンドボックス インフラストラクチャへの発行" と呼びます。

InfoPath 2010 と SharePoint Server 2010 では、管理者が展開したソリューションもサポートされています。 フォーム デザイナーは、コードを含むフォームをローカル ストアに発行します。このフォームは、後で SharePoint ファーム管理者によってレビューおよびアップロードされます。 コードには完全な信頼が与えられ、ファイル IO などの昇格された特権を必要とする機能を組み込むことができます。

サンドボックス ソリューションと管理者が承認したソリューションの比較

次の表は、サンドボックス ソリューションと管理者が承認したソリューションの違いをまとめたものです。

サンドボックス ソリューション 管理者が承認したソリューション
必要な権限
サイト コレクション管理者ならだれでも発行できます。 ファーム管理者が展開できます。
Publishing
InfoPath から直接発行できます。 サーバーの全体管理または stsadm コマンドライン ツールを使用して展開できます。
保護
コードはサンドボックス環境の中で実行されます。 そのため、サーバーを悪意のあるコードから守るのに役立ちます。 コードを完全信頼で実行でき、コードからサーバー上の任意のリソースにアクセスできます。
推奨される用途
少数のコードしか必要としないフォーム。 多数のコード行が含まれているフォーム。

サンドボックス ソリューションとしてフォーム テンプレートを発行する

コードを含むフォームをセキュリティで保護されたソリューションとして発行する場合も、他の任意のフォームをドキュメント ライブラリに発行する場合と違いはありません。 通常どおり発行ウィザードを使用すれば、フォームがサーバーにアップロードされ、サンドボックス内で動作します。

フォームをセキュリティで保護されたソリューションとして展開する場合、特定の制限事項があります。

  • InfoPath のフォームであることが必要です。

  • プログラム言語として C# または Visual Basic を使用する必要があります。

  • 電子メール データ接続への送信はできません。

  • パーツ間の接続用にプロパティを昇格させることはできません。

  • マネージ メタデータ コントロールまたはデータ接続を持たせることはできません。

Microsoft SharePoint Server 2010 上、または Microsoft SharePoint Foundation 2010 を実行しているサーバー上で、サイト コレクション管理者がセキュリティで保護されたソリューションを使用できるようにするには、ファーム管理者が Windows SharePoint User Code サービスを開始する必要があります。

Windows SharePoint User Code サービスを開始するには

  1. サーバーの全体管理 を開きます。

  2. [ システム設定] で、[ サーバーのサービスの管理] をクリックします。

  3. [ Microsoft SharePoint Foundation User Code Service] を開始します。

サンドボックス ソリューションを発行するには

  1. InfoPath デザイン モードでフォーム テンプレートを開きます。

  2. [ ファイル] タブをクリックし、Backstage の [ 発行] タブで [ SharePoint サーバー] をクリックします。

  3. 発行先の SharePoint サイトの URL を入力し、[ 次へ] をクリックします。

    重要

    このフォーム テンプレートをセキュリティで保護されたソリューションとして発行するためには、このサイトのサイト コレクション管理者である必要があります。

  4. [ フォーム ライブラリ] をクリックし、[ 次へ] をクリックします。

  5. [ 新しいフォーム ライブラリを作成する] をクリックし、[ 次へ] をクリックします。

  6. フォーム ライブラリの名前と説明を入力し、[ 次へ] をクリックします。

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

セキュリティで保護されたソリューションとして発行するフォーム テンプレートに適したシナリオを紹介するソリューション例の詳細については、「サンドボックス ソリューションのサンプル」を参照してください。

管理者展開用のソリューションとしてフォーム テンプレートを発行する

フォームにデータ接続が多数ある場合、完全信頼のセキュリティを必要とする場合、またはファーム規模のテンプレートを必要とする場合は、フォームを管理者が承認したテンプレートとして発行することをお勧めします。

管理者展開用のソリューションを SharePoint 上で使用できるようにするには、あらかじめファーム管理者がいくつかの手順を実行しておく必要があり、管理者が利用する前に開発者がソリューションを準備しておく必要があります。

まず、フォームを完全信頼として展開する場合は、次の手順に従ってセキュリティ レベルを設定する必要があります。

フォーム テンプレートのセキュリティ レベルを完全信頼に設定するには

  1. InfoPath デザイン モードでフォーム テンプレートを開きます。

  2. [ ファイル] タブをクリックし、[ 情報] タブの [ フォームのオプション] をクリックします。

  3. [ セキュリティと信頼] カテゴリをクリックし、[ 自動的にセキュリティ レベルを設定する] チェック ボックスをオフにします。

  4. [ 完全信頼] を選択します。

続いて、次の手順を実行してフォームを発行しますが、標準の発行手順とはいくつか異なる点があることに注意してください。

管理者展開用のソリューションを発行するには

  1. 発行ウィザードの 1 ページ目で、SharePoint Server 2010 または SharePoint Foundation 2010 サイトの場所を指定し、[ 次へ] をクリックします。

  2. InfoPath によって、ウィザードの 2 ページ目の [ 管理者承認用フォーム テンプレート] チェック ボックスが自動的にオンになります。 [ 次へ] をクリックします。

  3. 3 ページ目の内容は、管理者が展開するシナリオに固有のものになります。 SharePoint Server を選択する代わりに、フォームをローカル ストアに発行します。 SharePoint 管理者は、管理者の展開プロセス時にこの場所からファイルをアップロードすることになります。

  4. 発行ウィザードの残りのページを実行します。