次の方法で共有


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
}

関連項目

参照

FormEvents クラス

FormEvents メンバー

Microsoft.Office.InfoPath 名前空間