XpsDigitalSignature.Id Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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é
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