This documentation is archived and is not being maintained.

XpsDocument.SignDigitally Method (X509Certificate, Boolean, XpsDigSigPartAlteringRestrictions, Guid, Boolean)

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

Namespace:  System.Windows.Xps.Packaging
Assembly:  ReachFramework (in ReachFramework.dll)

public XpsDigitalSignature SignDigitally(
	X509Certificate certificate,
	bool embedCertificate,
	XpsDigSigPartAlteringRestrictions restrictions,
	Guid id,
	bool testIsSignable


Type: System.Security.Cryptography.X509Certificates.X509Certificate
The X.509 certificate to use in signing each part; or null to prompt the user to select an installed certificate.
Type: System.Boolean
true to store the certificate in the package; otherwise, false.
Type: System.Windows.Xps.Packaging.XpsDigSigPartAlteringRestrictions
Flags that indicate what dependent parts to exclude from the signing.
Type: System.Guid
The ID to assign to the signature.
Type: System.Boolean
true to verify that IsSignable is true before signing; otherwise, false.

Return Value

Type: System.Windows.Xps.Packaging.XpsDigitalSignature
An XpsDigitalSignature that contains information about the signature.

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.

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)
                    cert, true, XpsDigSigPartAlteringRestrictions.None,
                    cert, true, XpsDigSigPartAlteringRestrictions.None);

        }// end:SignXps()

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.