Partager via


XpsDigitalSignature.Id Propriété

Définition

Obtient l'identificateur global unique (GUID, Global Unique Identifier) de la 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)

Valeur de propriété

Nullable<Guid>

GUID de la signature.

Exemples

L’exemple suivant montre comment utiliser la Id propriété pour afficher et mettre à jour les informations de signature.


// -------------------- 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

S’applique à