XpsDocument.SignDigitally XpsDocument.SignDigitally XpsDocument.SignDigitally XpsDocument.SignDigitally Method

Definition

Signs a collection of package parts by using a specified X.509 certificate.

Overloads

SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions)

Signs a collection of package parts with a specified X.509 certificate.

SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid)

Signs a collection of package parts by using a specified X.509 certificate.

SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid, Boolean) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid, Boolean) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid, Boolean) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid, Boolean)

Signs a collection of package parts with a specified X.509 certificate.

Examples

The following example shows how to use the SignDigitally method.


// ------------------------------ SignXps -----------------------------
/// <summary>
///   Signs an XPS document with a given X509 certificate, and if one
///   exists, associates the signature with a given SignatureDefintion
///   spotId GUID.</summary>
/// <param name="xpsDocument">
///   The XPS document to sign.</param>
/// <param name="cert">
///   The X509 certificate to use for signing.</param>
/// <param name="spotId">
///   The nullable spotId GUID of the signature definition.</param>
public void SignXps(
    XpsDocument xpsDocument, X509Certificate cert, Guid? spotId )
{
    // If there's a SignatureDefinition spotId,
    // associate it with the signature.
    if (spotId != null)
    {
        xpsDocument.SignDigitally(
            cert, true, XpsDigSigPartAlteringRestrictions.None,
            spotId.Value);
    }
    else
    {
        xpsDocument.SignDigitally(
            cert, true, XpsDigSigPartAlteringRestrictions.None);
    }

}// end:SignXps()


' ------------------------------ SignXps -----------------------------
''' <summary>
'''   Signs an XPS document with a given X509 certificate, and if one
'''   exists, associates the signature with a given SignatureDefintion
'''   spotId GUID.</summary>
''' <param name="xpsDocument">
'''   The XPS document to sign.</param>
''' <param name="cert">
'''   The X509 certificate to use for signing.</param>
''' <param name="spotId">
'''   The nullable spotId GUID of the signature definition.</param>
Public Sub SignXps(ByVal xpsDocument As XpsDocument, ByVal cert As X509Certificate, ByVal spotId? As Guid)
	' If there's a SignatureDefinition spotId,
	' associate it with the signature.
	If spotId IsNot Nothing Then
		xpsDocument.SignDigitally(cert, True, XpsDigSigPartAlteringRestrictions.None, spotId.Value)
	Else
		xpsDocument.SignDigitally(cert, True, XpsDigSigPartAlteringRestrictions.None)
	End If

End Sub ' end:SignXps()

SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions)

Signs a collection of package parts with a specified X.509 certificate.

public:
 System::Windows::Xps::Packaging::XpsDigitalSignature ^ SignDigitally(System::Security::Cryptography::X509Certificates::X509Certificate ^ certificate, bool embedCertificate, System::Windows::Xps::Packaging::XpsDigSigPartAlteringRestrictions restrictions);
public System.Windows.Xps.Packaging.XpsDigitalSignature SignDigitally (System.Security.Cryptography.X509Certificates.X509Certificate certificate, bool embedCertificate, System.Windows.Xps.Packaging.XpsDigSigPartAlteringRestrictions restrictions);
member this.SignDigitally : System.Security.Cryptography.X509Certificates.X509Certificate * bool * System.Windows.Xps.Packaging.XpsDigSigPartAlteringRestrictions -> System.Windows.Xps.Packaging.XpsDigitalSignature
Public Function SignDigitally (certificate As X509Certificate, embedCertificate As Boolean, restrictions As XpsDigSigPartAlteringRestrictions) As XpsDigitalSignature

Parameters

certificate
X509Certificate X509Certificate X509Certificate X509Certificate

The X.509 certificate to use in signing each part; or null to prompt the user to select an installed certificate.

embedCertificate
Boolean Boolean Boolean Boolean

true to store the certificate in the package; otherwise, false.

restrictions
XpsDigSigPartAlteringRestrictions XpsDigSigPartAlteringRestrictions XpsDigSigPartAlteringRestrictions XpsDigSigPartAlteringRestrictions

Flags that indicate what dependent parts must be excluded from the signing.

Returns

Examples

The following example shows how to use the SignDigitally method.


// ------------------------------ SignXps -----------------------------
/// <summary>
///   Signs an XPS document with a given X509 certificate, and if one
///   exists, associates the signature with a given SignatureDefintion
///   spotId GUID.</summary>
/// <param name="xpsDocument">
///   The XPS document to sign.</param>
/// <param name="cert">
///   The X509 certificate to use for signing.</param>
/// <param name="spotId">
///   The nullable spotId GUID of the signature definition.</param>
public void SignXps(
    XpsDocument xpsDocument, X509Certificate cert, Guid? spotId )
{
    // If there's a SignatureDefinition spotId,
    // associate it with the signature.
    if (spotId != null)
    {
        xpsDocument.SignDigitally(
            cert, true, XpsDigSigPartAlteringRestrictions.None,
            spotId.Value);
    }
    else
    {
        xpsDocument.SignDigitally(
            cert, true, XpsDigSigPartAlteringRestrictions.None);
    }

}// end:SignXps()


' ------------------------------ SignXps -----------------------------
''' <summary>
'''   Signs an XPS document with a given X509 certificate, and if one
'''   exists, associates the signature with a given SignatureDefintion
'''   spotId GUID.</summary>
''' <param name="xpsDocument">
'''   The XPS document to sign.</param>
''' <param name="cert">
'''   The X509 certificate to use for signing.</param>
''' <param name="spotId">
'''   The nullable spotId GUID of the signature definition.</param>
Public Sub SignXps(ByVal xpsDocument As XpsDocument, ByVal cert As X509Certificate, ByVal spotId? As Guid)
	' If there's a SignatureDefinition spotId,
	' associate it with the signature.
	If spotId IsNot Nothing Then
		xpsDocument.SignDigitally(cert, True, XpsDigSigPartAlteringRestrictions.None, spotId.Value)
	Else
		xpsDocument.SignDigitally(cert, True, XpsDigSigPartAlteringRestrictions.None)
	End If

End Sub ' end:SignXps()

Remarks

If certificate is null, a dialog box appears that enables the user to select an installed X.509 certificate, such as from a smart card reader.

SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid)

Signs a collection of package parts by using a specified X.509 certificate.

public:
 System::Windows::Xps::Packaging::XpsDigitalSignature ^ SignDigitally(System::Security::Cryptography::X509Certificates::X509Certificate ^ certificate, bool embedCertificate, System::Windows::Xps::Packaging::XpsDigSigPartAlteringRestrictions restrictions, Guid id);
public System.Windows.Xps.Packaging.XpsDigitalSignature SignDigitally (System.Security.Cryptography.X509Certificates.X509Certificate certificate, bool embedCertificate, System.Windows.Xps.Packaging.XpsDigSigPartAlteringRestrictions restrictions, Guid id);
member this.SignDigitally : System.Security.Cryptography.X509Certificates.X509Certificate * bool * System.Windows.Xps.Packaging.XpsDigSigPartAlteringRestrictions * Guid -> System.Windows.Xps.Packaging.XpsDigitalSignature
Public Function SignDigitally (certificate As X509Certificate, embedCertificate As Boolean, restrictions As XpsDigSigPartAlteringRestrictions, id As Guid) As XpsDigitalSignature

Parameters

certificate
X509Certificate X509Certificate X509Certificate X509Certificate

The X.509 certificate to use in signing each part; or null to prompt the user to select an installed certificate.

embedCertificate
Boolean Boolean Boolean Boolean

true to store the certificate in the package; otherwise, false.

restrictions
XpsDigSigPartAlteringRestrictions XpsDigSigPartAlteringRestrictions XpsDigSigPartAlteringRestrictions XpsDigSigPartAlteringRestrictions

Flags that indicate what dependent parts are excluded from the signing.

id
Guid Guid Guid Guid

The ID to assign to the signature.

Returns

Examples

The following example shows how to use the SignDigitally method.


// ------------------------------ SignXps -----------------------------
/// <summary>
///   Signs an XPS document with a given X509 certificate, and if one
///   exists, associates the signature with a given SignatureDefintion
///   spotId GUID.</summary>
/// <param name="xpsDocument">
///   The XPS document to sign.</param>
/// <param name="cert">
///   The X509 certificate to use for signing.</param>
/// <param name="spotId">
///   The nullable spotId GUID of the signature definition.</param>
public void SignXps(
    XpsDocument xpsDocument, X509Certificate cert, Guid? spotId )
{
    // If there's a SignatureDefinition spotId,
    // associate it with the signature.
    if (spotId != null)
    {
        xpsDocument.SignDigitally(
            cert, true, XpsDigSigPartAlteringRestrictions.None,
            spotId.Value);
    }
    else
    {
        xpsDocument.SignDigitally(
            cert, true, XpsDigSigPartAlteringRestrictions.None);
    }

}// end:SignXps()


' ------------------------------ SignXps -----------------------------
''' <summary>
'''   Signs an XPS document with a given X509 certificate, and if one
'''   exists, associates the signature with a given SignatureDefintion
'''   spotId GUID.</summary>
''' <param name="xpsDocument">
'''   The XPS document to sign.</param>
''' <param name="cert">
'''   The X509 certificate to use for signing.</param>
''' <param name="spotId">
'''   The nullable spotId GUID of the signature definition.</param>
Public Sub SignXps(ByVal xpsDocument As XpsDocument, ByVal cert As X509Certificate, ByVal spotId? As Guid)
	' If there's a SignatureDefinition spotId,
	' associate it with the signature.
	If spotId IsNot Nothing Then
		xpsDocument.SignDigitally(cert, True, XpsDigSigPartAlteringRestrictions.None, spotId.Value)
	Else
		xpsDocument.SignDigitally(cert, True, XpsDigSigPartAlteringRestrictions.None)
	End If

End Sub ' end:SignXps()

Remarks

If certificate is null, a dialog box appears that enables the user to select an installed X.509 certificate, such as from a smart card reader.

SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid, Boolean) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid, Boolean) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid, Boolean) SignDigitally(X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid, Boolean)

Signs a collection of package parts with a specified X.509 certificate.

public:
 System::Windows::Xps::Packaging::XpsDigitalSignature ^ SignDigitally(System::Security::Cryptography::X509Certificates::X509Certificate ^ certificate, bool embedCertificate, System::Windows::Xps::Packaging::XpsDigSigPartAlteringRestrictions restrictions, Guid id, bool testIsSignable);
public System.Windows.Xps.Packaging.XpsDigitalSignature SignDigitally (System.Security.Cryptography.X509Certificates.X509Certificate certificate, bool embedCertificate, System.Windows.Xps.Packaging.XpsDigSigPartAlteringRestrictions restrictions, Guid id, bool testIsSignable);
member this.SignDigitally : System.Security.Cryptography.X509Certificates.X509Certificate * bool * System.Windows.Xps.Packaging.XpsDigSigPartAlteringRestrictions * Guid * bool -> System.Windows.Xps.Packaging.XpsDigitalSignature
Public Function SignDigitally (certificate As X509Certificate, embedCertificate As Boolean, restrictions As XpsDigSigPartAlteringRestrictions, id As Guid, testIsSignable As Boolean) As XpsDigitalSignature

Parameters

certificate
X509Certificate X509Certificate X509Certificate X509Certificate

The X.509 certificate to use in signing each part; or null to prompt the user to select an installed certificate.

embedCertificate
Boolean Boolean Boolean Boolean

true to store the certificate in the package; otherwise, false.

restrictions
XpsDigSigPartAlteringRestrictions XpsDigSigPartAlteringRestrictions XpsDigSigPartAlteringRestrictions XpsDigSigPartAlteringRestrictions

Flags that indicate what dependent parts to exclude from the signing.

id
Guid Guid Guid Guid

The ID to assign to the signature.

testIsSignable
Boolean Boolean Boolean Boolean

true to verify that IsSignable is true before signing; otherwise, false.

Returns

Examples

The following example shows how to use the SignDigitally method.


// ------------------------------ SignXps -----------------------------
/// <summary>
///   Signs an XPS document with a given X509 certificate, and if one
///   exists, associates the signature with a given SignatureDefintion
///   spotId GUID.</summary>
/// <param name="xpsDocument">
///   The XPS document to sign.</param>
/// <param name="cert">
///   The X509 certificate to use for signing.</param>
/// <param name="spotId">
///   The nullable spotId GUID of the signature definition.</param>
public void SignXps(
    XpsDocument xpsDocument, X509Certificate cert, Guid? spotId )
{
    // If there's a SignatureDefinition spotId,
    // associate it with the signature.
    if (spotId != null)
    {
        xpsDocument.SignDigitally(
            cert, true, XpsDigSigPartAlteringRestrictions.None,
            spotId.Value);
    }
    else
    {
        xpsDocument.SignDigitally(
            cert, true, XpsDigSigPartAlteringRestrictions.None);
    }

}// end:SignXps()


' ------------------------------ SignXps -----------------------------
''' <summary>
'''   Signs an XPS document with a given X509 certificate, and if one
'''   exists, associates the signature with a given SignatureDefintion
'''   spotId GUID.</summary>
''' <param name="xpsDocument">
'''   The XPS document to sign.</param>
''' <param name="cert">
'''   The X509 certificate to use for signing.</param>
''' <param name="spotId">
'''   The nullable spotId GUID of the signature definition.</param>
Public Sub SignXps(ByVal xpsDocument As XpsDocument, ByVal cert As X509Certificate, ByVal spotId? As Guid)
	' If there's a SignatureDefinition spotId,
	' associate it with the signature.
	If spotId IsNot Nothing Then
		xpsDocument.SignDigitally(cert, True, XpsDigSigPartAlteringRestrictions.None, spotId.Value)
	Else
		xpsDocument.SignDigitally(cert, True, XpsDigSigPartAlteringRestrictions.None)
	End If

End Sub ' end:SignXps()

Remarks

If certificate is null, a dialog box is presented that enables the user to select an installed X.509 certificate, such as from a smart card reader.

CryptographicException is thrown if certificate is null and no certificates are installed.

Applies to