XpsDigitalSignature.Id Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает глобальный уникальный идентификатор (GUID) подписи.
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)
Значение свойства
GUID подписи.
Примеры
В следующем примере показано, как использовать Id свойство для отображения и обновления сведений о подписи.
// -------------------- 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