XpsDigitalSignature.Id Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.