次の方法で共有


FormEvents.Sign イベント

[デジタル署名] ダイアログ ボックスで署名することになる署名データが選択されると発生します。

名前空間: Microsoft.Office.InfoPath
アセンブリ: Microsoft.Office.InfoPath (microsoft.office.infopath.dll 内)

構文

'宣言
Public 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 Office InfoPath 2007 デザイン モード ユーザー インターフェイスからフォーム レベル イベントに対するイベント ハンドラの追加だけを行います。デザイン モード ユーザー インターフェイスからフォーム テンプレートにイベント ハンドラを追加すると、InfoPath は、EventManager クラスおよび FormEvents クラスのメンバを使用してフォーム コード ファイルの InternalStartup メソッドにコードを生成し、イベントをイベント ハンドラにバインドします。InfoPath のデザイン モードでイベント ハンドラを追加する方法の詳細については、「[方法] イベント ハンドラを追加する方法」を参照してください。

Sign イベントは、SignEventHandler 代理を使用してバインドされます。

このイベントに対するイベント ハンドラが実行するためには、完全信頼セキュリティ レベルが必要です。このセキュリティ レベルを設定するには、InfoPath デザイン ウィンドウで [ツール] メニューの [フォームのオプション] をクリックし、[セキュリティと信頼] をクリックします。次に、[自動的にセキュリティ レベルを設定する] をオフにして、[完全信頼] をオンにします。[完全信頼] セキュリティ レベルに設定されたフォームは、インストールするか、またはデジタル署名する必要があります。

Sign イベントのイベント ハンドラを使用して、デジタル署名にデータを追加できます。たとえば、信頼できるタイムスタンプ サーバーからのデータを追加したり、トランザクションのサーバー側の副署名を追加したりすることができます。また、このイベント ハンドラを使用すると、現在のユーザーが特定のグループのメンバではない場合に署名をブロックできます。

このメンバは、[フォームのオプション] ダイアログ ボックスの [セキュリティと信頼] カテゴリを使用して完全信頼で実行するように構成されているフォーム テンプレートから開かれたフォームだけがアクセスできます。このメンバは、直接呼出し元に対する完全な信頼が必要であり、部分的に信頼されたコードで使用することはできません。詳細については、MSDN の「部分的に信頼されたコードからライブラリを使用する」を参照してください。

この型またはメンバは、Microsoft Office InfoPath 2007 で開いているフォームで実行されているコードからのみアクセスできます。

次の例では、InfoPath デザイン モード ユーザー インターフェイスの [ツール] メニューの [プログラミング] を選択して 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 名前空間