FormEvents.Sign イベント
[デジタル署名] ダイアログ ボックスで署名することになる署名データが選択されると発生します。
名前空間: Microsoft.Office.InfoPath
アセンブリ: Microsoft.Office.InfoPath (Microsoft.Office.InfoPath.dll)
構文
'宣言
Public MustOverride Event Sign As SignEventHandler
'使用
Dim instance As FormEvents
Dim handler As SignEventHandler
AddHandler instance.Sign, handler
public abstract event SignEventHandler Sign
例外
例外 | 条件 |
---|---|
InvalidOperationException | 開発者は、InternalStartup メソッドとは異なる場所でイベントをバインドしようとしました。 |
SecurityException | フォーム テンプレートが、[フォームのオプション] ダイアログ ボックスの [セキュリティと信頼] カテゴリを使用して [完全信頼] として構成されていません。 |
解説
重要
Sign イベントは、フォーム コードで開発者がインスタンス化するためのものではありません。開発者は、Microsoft InfoPath 2010 デザイン モード ユーザー インターフェイスからフォーム レベル イベントに対するイベント ハンドラーの追加だけを行います。デザイン モード ユーザー インターフェイスからフォーム テンプレートにイベント ハンドラーを追加すると、InfoPath は、EventManager クラスおよび FormEvents クラスのメンバーを使用してフォーム コード ファイルの InternalStartup メソッドにコードを生成し、イベントをイベント ハンドラーにバインドします。InfoPath のデザイン モードでイベント ハンドラーを追加する方法の詳細については、「[方法] イベント ハンドラーを追加する方法」を参照してください。
Sign イベントは、SignEventHandler デリゲートを使用してバインドされます。
このイベントに対するイベント ハンドラーが実行するためには、完全信頼のセキュリティ レベルが必要です。このセキュリティ レベルを設定するには、InfoPath デザイン モードで [ファイル] タブ、[フォームのオプション] の順にクリックし、[セキュリティと信頼] を選択します。次に、[自動的にセキュリティ レベルを設定する] をオフにして、[完全信頼] をオンにします。[完全信頼] セキュリティ レベルに設定されたフォームは、インストールするか、またはデジタル署名する必要があります。
Sign イベントのイベント ハンドラーを使用して、デジタル署名にデータを追加できます。たとえば、信頼できるタイムスタンプ サーバーからのデータを追加したり、トランザクションのサーバー側の副署名を追加したりすることができます。また、このイベント ハンドラーを使用すると、現在のユーザーが特定のグループのメンバーではない場合に署名をブロックできます。
このメンバーには、[フォームのオプション] ダイアログ ボックスの [セキュリティ] または [信頼] カテゴリを使用して、完全な信頼を与えられて実行するように構成されたフォーム テンプレートから開かれたフォームのみがアクセスできます。このメンバーは、直接の呼び出し側の完全な信頼が必要であり、部分的に信頼されたコードでは使用できません。詳細については、MSDN の「部分信頼コードからのライブラリの使用」を参照してください。
この型またはメンバーには、Microsoft InfoPath Filler で開かれたフォームを実行中のコードからのみアクセスできます。
例
次の例では、InfoPath デザイン モード ユーザー インターフェイスの [開発] タブの [Sign イベント] をクリックして Sign イベント用のイベント ハンドラーをフォームに追加することで作成されており、デジタル署名を Signature クラスの Sign メソッドを使用してフォームに追加します。
public void FormEvents_Sign(object sender, SignEventArgs e)
{
// This event handler will run only in fully trusted form templates.
Signature thisSignature =
e.SignedDataBlock.Signatures.CreateSignature();
// To add other pieces of information to sign, modify the
// signature template returned by
// thisSignature.SignatureBlockXmlNode.
// Write your code here.
thisSignature.Sign();
e.SignatureWizard = false;
}
Public Sub FormEvents_Sign(ByVal sender As Object, _
ByVal e As SignEventArgs)
' This event handler will run only in fully trusted form templates.
Dim thisSignature As Signature = _
e.SignedDataBlock.Signatures.CreateSignature
' To add other pieces of information to sign, modify the
' signature template returned by
' thisSignature.SignatureBlockXmlNode.
' Write your code here.
thisSignature.Sign()
e.SignatureWizard = False
}