次の方法で共有


Signature クラス

フォームまたはフォームの署名済みデータのセットに追加されたデジタル署名を表します。

継承階層

System.Object
  Microsoft.Office.InfoPath.Signature

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

構文

'宣言
Public MustInherit Class Signature
'使用
Dim instance As Signature
public abstract class Signature

解説

Signature オブジェクトを返すには、SignatureCollection コレクションの Item プロパティを使用します。

Signature クラスは、XML デジタル署名ブロックを書き込み、署名済みデータの暗号ハッシュを計算する Sign メソッドを提供します。

Signature クラスは、デジタル署名に関する情報を取得するために、次のプロパティを提供します。

  • Certificate   フォーム ユーザーがフォームまたはフォーム内のデータのセットへの署名に使用した X.509 デジタル署名の証明書オブジェクトを取得します。

  • Comment   ユーザーがフォームまたはフォーム内のデータのセットに関連付け、デジタル署名に追加したコメントを取得します。

  • SignatureBlockXmlNode   デジタル署名を含む XML ノードを取得します。このプロパティを使用すると、InfoPath で署名と共に格納される署名のプロパティまたはデータのセットを拡張できます。

  • Status   指定したデジタル署名の状態を SignatureStatus 列挙値として取得します。

次の例では、フォームの最初の署名済みデータのセットの最初のデジタル署名に関する情報 (または、フォーム全体に署名するようにフォーム テンプレートが構成されている場合は、フォーム全体の最初の署名に関する情報) を表示します。最初に、署名を表す Signature オブジェクトへの参照が取得されます。署名から状態およびコメントの値を取得するために、Signature クラスの Status プロパティおよび Comment プロパティが使用されます。署名の Certificate オブジェクトを取得するために、Signature クラスの Certificate プロパティが使用されます。これは、後で証明書の発行先を表示するために使用されます。署名情報を含む XML ノードのサブツリーを取得するために、Signature クラスの SignatureBlockXmlNode プロパティが使用されます。最後に、これらのすべての情報は、一連のメッセージ ボックスに表示されます。

// Get signature.
Signature mySignature = this.SignedDataBlocks[0].Signatures[0];

// Get status of signature.
string sigStatus = mySignature.Status.ToString();

// Get comment.
string signatureComment = mySignature.Comment;

// Get certificate used to sign with.
Certificate signatureCertificate = mySignature.Certificate;

// Get XML node that contains the signature.
XPathNavigator signatureNode = mySignature.SignatureBlockXmlNode;

// Display properties.
MessageBox.Show("Signature properties:\n\nStatus: " + sigStatus + 
   "\nComment: " + signatureComment + 
   "\nCertificate Issued To: " + signatureCertificate.IssuedTo);

// Display XML node subtree that contains signature.
MessageBox.Show("Digital signature XML block: \n" + signatureNode.InnerXml);
Imports Microsoft.VisualBasic.Constants
' Get signature.
Dim mySignature As Signature = Me.SignedDataBlocks(0).Signatures(0)

' Get status of signature.
Dim sigStatus As String = mySignature.Status.ToString()

' Get comment.
Dim signatureComment As String = mySignature.Comment

' Get certificate used to sign with.
Dim signatureCertificate As Certificate = mySignature.Certificate

' Get XML node that contains the signature.
Dim signatureNode As XPathNavigator = mySignature.SignatureBlockXmlNode

' Display properties.
MessageBox.Show("Signature properties:" & NewLine & _
   "Status: " & sigStatus & NewLine & _
   "Comment: " & signatureComment & NewLine & _
   "Certificate Issued To: " & signatureCertificate.IssuedTo)

' Display XML node subtree that contains signature.
MessageBox.Show("Digital signature XML block:" & NewLine & _
   signatureNode.InnerXml)

スレッドの安全性

この型の public static (Visual Basic ではShared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

関連項目

参照

Signature メンバー

Microsoft.Office.InfoPath 名前空間