Skip to main content
A newer version of this page is available. .
All docs
V20.2
.NET Framework 4.5.2+

PackageSignatureValidation.Items Property

Retrieves a list of items with detailed validation information.

Namespace: DevExpress.Office.DigitalSignatures

Assembly: DevExpress.Docs.v20.2.dll

Declaration

public IList<SignatureValidationInfo> Items { get; }

Property Value

Type Description
IList<SignatureValidationInfo>

A list of objects with validation information.

Remarks

Check the Items property to obtain a list of SignatureValidationInfo objects with information about signature validation. A number of items in the returned IList is equal to the number of signatures in the document.

Use properties from the table below for more information:

Property Description
SignatureValidationInfo.PassedChecks Returns verification types the signature passed.
SignatureValidationInfo.PassedCheckDetails Obtains information about passed verifications.
SignatureValidationInfo.FailedChecks Returns verification types the signature did not pass.
SignatureValidationInfo.FailedCheckDetails Retrieves information about failed verifications.
SignatureValidationInfo.CheckDetails Gets information about all verifications.

The code sample below validates signatures in a DOCX and XLSX document, checks the result, and displays information in the console:

using DevExpress.Office.DigitalSignatures;
using System.Diagnostics;
using System.Net;

static void Main(string[] args)
{
    ValidateSignature("Template_signed.docx");
    ValidateSignature("Template_signed.xlsx");
}

private static void ValidateSignature(string path)
{
    DocumentSigner validator = new DocumentSigner();

    //In this example, certificate validation is skipped
    SignatureValidationOptions validationOptions = new SignatureValidationOptions();
    validationOptions.ValidationFlags = ~ValidationFlags.ValidateSignatureCertificate & ~ValidationFlags.ValidateTimestampCertificate;

    //Validate the signature:
    PackageSignatureValidation signatureValidation = validator.Validate(path, validationOptions);
    AnalyzeValidationResult(signatureValidation);        

}

private static void AnalyzeValidationResult(PackageSignatureValidation signatureValidation)
{
    string validationMessage = signatureValidation.ResultMessage;

    //Check validation result and show information in the console:
    switch (signatureValidation.Result)
    {
        case PackageSignatureValidationResult.Valid:
            Console.WriteLine(validationMessage); Console.ReadKey();
            Process.Start(output);
            break;

        case PackageSignatureValidationResult.SignaturesNotFound:
            Console.WriteLine(validationMessage);
            break;

        case PackageSignatureValidationResult.Invalid:
        case PackageSignatureValidationResult.PartiallyValid:
            var failedCheckDetails = signatureValidation.Items[0].FailedCheckDetails;
            Console.WriteLine(validationMessage);
            int i = 1;
            foreach (SignatureCheckResult checkResult in failedCheckDetails)
            {
                Console.WriteLine(String.Format("Validation details {0}: \r\n" +
                    "{1} failed, Info: {2} \r\n", i, checkResult.CheckType, checkResult.Info));
                i++;
            }
            Console.ReadKey();
            break;
    }
}
See Also