XpsDigitalSignature.Id Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá globálně jedinečný identifikátor (GUID) podpisu.
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)
Hodnota vlastnosti
Identifikátor GUID podpisu.
Příklady
Následující příklad ukazuje, jak použít Id vlastnost k zobrazení a aktualizaci informací o podpisu.
// -------------------- 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