Edytuj

Udostępnij za pośrednictwem


XpsDigitalSignature.Id Property

Definition

Gets the globally unique identifier (GUID) of the signature.

public:
 property Nullable<Guid> Id { Nullable<Guid> get(); };
public Guid? Id { get; }
member this.Id : Nullable<Guid>
Public ReadOnly Property Id As Nullable(Of Guid)

Property Value

The GUID of the signature.

Examples

The following example shows how to use the Id property to display and update signature information.


// -------------------- IterateSignatureDefinitions --------------------
/// <summary>
///   Interates through the SignatureDefinition contained in a given
///   XPS document displaying and updating the signature properties
///   through a user dialog.</summary>
/// <param name="signatureDialog">
///   The user dialog to use in displaying and
///   updating the signature information.</param>
/// <param name="xpsDocument">
///   The XPS document containing the signature information.</param>
public void IterateSignatureDefinitions(
    SignatureDialog signatureDialog, XpsDocument xpsDocument )
{
    IXpsFixedDocumentSequenceReader docSeq =
        xpsDocument.FixedDocumentSequenceReader;

    // For every FixedDocument in the XPS document.
    foreach (IXpsFixedDocumentReader doc in docSeq.FixedDocuments)
    {
        // For every SignatureDefinition in each FixedDocument.
        foreach (XpsSignatureDefinition signature in
                 doc.SignatureDefinitions)
        {
            SignatureDisplayItem item =
                signatureDialog.AddSignatureItem(signature);

            // Signatures are bound to signature definitions by GUID.
            // If the SignatureDefintion SpotId is the same as the
            // SignatureId, the signature is signing that definition.

            // For every signature in the XPS document.
            foreach (XpsDigitalSignature sig in xpsDocument.Signatures)
            {
                if (sig.Id != null && sig.Id == signature.SpotId)
                {
                    X509Certificate2 cert =
                        sig.SignerCertificate as X509Certificate2;
                    item.Signer =
                        cert.GetNameInfo(X509NameType.SimpleName, false);
                    item.IsSigned = true;
                }
            }// end:foreach (XpsDigitalSignature
        }// end:foreach (XpsSignatureDefinition
    }// end:foreach (IXpsFixedDocumentReader
}// end:IterateSignatureDefinitions()

' -------------------- IterateSignatureDefinitions --------------------
''' <summary>
'''   Interates through the SignatureDefinition contained in a given
'''   XPS document displaying and updating the signature properties
'''   through a user dialog.</summary>
''' <param name="signatureDialog">
'''   The user dialog to use in displaying and
'''   updating the signature information.</param>
''' <param name="xpsDocument">
'''   The XPS document containing the signature information.</param>
Public Sub IterateSignatureDefinitions(signatureDialog As SignatureDialog, xpsDocument As XpsDocument)
    Dim docSeq As IXpsFixedDocumentSequenceReader = xpsDocument.FixedDocumentSequenceReader

    ' For every FixedDocument in the XPS document.
    For Each doc As IXpsFixedDocumentReader In docSeq.FixedDocuments
        ' For every SignatureDefinition in each FixedDocument.
        For Each signature As XpsSignatureDefinition In doc.SignatureDefinitions
            Dim item As SignatureDisplayItem = signatureDialog.AddSignatureItem(signature)

            ' Signatures are bound to signature definitions by GUID.
            ' If the SignatureDefintion SpotId is the same as the
            ' SignatureId, the signature is signing that definition.

            ' For every signature in the XPS document.
            For Each sig As XpsDigitalSignature In xpsDocument.Signatures
                If sig.Id IsNot Nothing AndAlso sig.Id = signature.SpotId Then
                    Dim cert As X509Certificate2 = TryCast(sig.SignerCertificate, X509Certificate2)
                    item.Signer = cert.GetNameInfo(X509NameType.SimpleName, False)
                    item.IsSigned = True
                End If
            Next sig ' end:foreach (XpsDigitalSignature

        Next signature ' end:foreach (XpsSignatureDefinition

    Next doc ' end:foreach (IXpsFixedDocumentReader

End Sub

Applies to