InfoPath Forms Services およびビジネス ロジック アセンブリについて

最終更新日: 2010年7月6日

適用対象: SharePoint Server 2010

この記事の内容
新しいマネージ コード オブジェクト モデル
セキュリティとパフォーマンス
アセンブリの使用と参照に関する注意事項

ブラウザー対応のフォーム テンプレートが、Microsoft.Office.InfoPath 名前空間で提供される新しいマネージ コード オブジェクト モデルのサポートされる型とメンバーを使用している場合は、カスタム ビジネス ロジックがフォーム テンプレートでサポートされます。InfoPath Designer と統合された Microsoft Visual Studio Tools for Applications 開発環境は、Visual Basic 言語と Visual C# 言語をサポートします。

JScript、VBScript、および Microsoft Office InfoPath 2003 サービス パック 1 で導入された Microsoft.Office.Interop.InfoPath.SemiTrust オブジェクト モデルを使用して記述されたマネージ コードは、InfoPath Forms Services を実行するサーバーではサポートされません。

新しいマネージ コード オブジェクト モデル

新しいマネージ コード オブジェクト モデルは XML データ ストア内の移動とその更新に [System.Xml.XPath.XPathNavigator] クラスを使用し、InfoPath Forms Services の基になっている Microsoft SharePoint Foundation 技術には .NET Framework 2.0 が必要です。Microsoft InfoPath 2010 で使用できる新しいマネージ コード オブジェクト モデルおよび廃止されたオブジェクト モデルの詳細については、フォーム テンプレートの InfoPath 2010 開発者リファレンスにある「InfoPath オブジェクト モデルと開発環境を理解する」を参照してください。このリファレンスは、Microsoft Visual Studio Tools for Applications のヘルプ システムで利用できます。

InfoPath と Web ブラウザーの両方で使用できる型とメンバーを含む新しいマネージ コード オブジェクト モデルのサブセットの詳細については、「デザイン ワンス フィーチャーの互換性」を参照してください。InfoPath、デスクトップ Web ブラウザー、またはモバイル ブラウザーのいずれでフォームが開かれているかに基づいてカスタム ビジネス ロジックを変更するため、実行時環境をプログラムで判別できます。実行時環境の判別の詳細については、Microsoft Visual Studio Tools for Applications ヘルプ システムにある「[方法] 実行時の環境を指定する条件付きロジックを書く方法」トピックを参照してください。

セキュリティとパフォーマンス

ブラウザー互換のフォーム テンプレートを作成すると、既定の InfoPath フォーム コード ファイルは、厳密な名前のキー ファイル InfoPath.snk で署名されます。独自のビジネス ロジック アセンブリでは、別の厳密な名前のキー ファイルを使用できます。既定のフォーム コード ファイルまたはいずれかのサポート アセンブリにも厳密な名前および署名がなく、ビジネス ロジック アセンブリを含むフォーム テンプレートをアップグレードする場合は、SharePoint アプリケーション ドメイン (AppDomain) を再利用する必要があります。

InfoPath ビジネス ロジック アセンブリは、Code Access Security (CAS) ポリシー ソリューションをとおしてアクセス許可を付与されます。サーバーでのドメイン新規信頼レベルは、クライアントでのドメイン信頼レベルに相当する概念です。SharePoint には、Minimal、Medium、Full という 3 つのポリシー ファイルが含まれます。InfoPath Forms Services はビジネス ロジック アセンブリに対応する証拠を提供し、アセンブリがポリシー ファイルで定義されているコード グループにマップして、正しいアクセス許可セットを取得するようにします。このアクセス許可セットは、ビジネス ロジック アセンブリが ASP.NET アプリケーション ドメインに読み込まれるときにアセンブリに与えられますが、通常は、カスタム ビジネス ロジック アセンブリを含むフォーム テンプレートが InfoPath で開かれるときに同じアセンブリが受け取るものとまったく同じではありません。フォーム テンプレートが InfoPath とブラウザーで開かれるようにするには、ビジネス ロジック アセンブリがオブジェクト モデルの呼び出しを行うとき、または InfoPath Forms Services がビジネス ロジック アセンブリにイベントを送信するときに、アクセス許可セットのレベルを上げたり下げたりして、正しいレベルになるようにします。さらに、InfoPath フォーム テンプレートに複数のアセンブリが含まれる場合は、一貫したアクセス許可セットが適用されるように、すべてのアセンブリを同時に読み込みます。

注意

完全信頼フォーム テンプレートだけが、InfoPath Forms Services を実行するサーバーでアセンブリを動的に作成するコードを含むことができます。

InfoPath Forms Services を実行するサーバー上にあるすべてのブラウザー対応フォーム テンプレートのすべてのビジネス ロジック アセンブリが、必要に応じて、SharePoint が使用して制御する単一のアプリケーション ドメインに読み込まれます。アプリケーション ドメインが再利用されると、ビジネス ロジック アセンブリは再び要求されるまでは再読み込みされません。

ビジネス ロジック アセンブリは、各フロントエンド Web サーバーに格納され、LoadFrom.NET Framework クラスの Assembly メソッドを使用して、InfoPath Forms Services により読み込まれます。このクラスには、入力された証拠とローダーによって収集された証拠をマージして、ポリシー解決に使用される最終的な証拠のセットを作成するためのセマンティクスが含まれます。

アセンブリの使用と参照に関する注意事項

  • 複数のフォーム テンプレートでアセンブリを共有する必要がある場合は、共有されるアセンブリを各フォーム テンプレートに入れます。ただし、2 番目以降のフォーム テンプレートが 1 番目のフォーム テンプレートと同じアセンブリを使用し、1 番目のフォーム テンプレートより高い、または低いセキュリティ レベルでマークされている場合、共有されるアセンブリは、1 番目のフォーム テンプレートのセキュリティ レベルの対応するアプリケーション ドメイン アクセス許可セットを継承することに注意してください。

  • いずれかのフォーム アセンブリの ID が、既に変換されているフォームのアセンブリの ID と同じで、アセンブリがビット単位の比較を行わない場合、カスタム ビジネス ロジック アセンブリを含むフォームの変換は失敗します。