officefileapi-devexpress-dot-office-dot-digitalsignatures-38923f74.md
Contains signature check result details.
Namespace : DevExpress.Office.DigitalSignatures
Assembly : DevExpress.Docs.v25.2.dll
NuGet Package : DevExpress.Document.Processor
public class SignatureCheckResult
Public Class SignatureCheckResult
The following properties allow you to retrieve the list of SignatureCheckResult objects:
| Property | Description |
|---|---|
| SignatureValidationInfo.PassedCheckDetails | Gets information about passed verifications. |
| SignatureValidationInfo.FailedCheckDetails | Obtains 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;
}
}
Imports Microsoft.VisualBasic
Imports DevExpress.Office.DigitalSignatures
Imports System.Diagnostics
Imports System.Net
Shared Sub Main(ByVal args() As String)
ValidateSignature("Template_signed.docx")
ValidateSignature("Template_signed.xlsx")
End Sub
Private Shared Sub ValidateSignature(ByVal path As String)
Dim validator As New DocumentSigner()
'In this example, certificate validation is skipped
Dim validationOptions As New SignatureValidationOptions()
validationOptions.ValidationFlags = (Not ValidationFlags.ValidateSignatureCertificate) And Not ValidationFlags.ValidateTimestampCertificate
'Validate the signature:
Dim signatureValidation As PackageSignatureValidation = validator.Validate(path, validationOptions)
Dim validationMessage As String = signatureValidation.ResultMessage
'Check the validation result:
Select Case signatureValidation.Result
Case PackageSignatureValidationResult.Valid
Console.WriteLine(validationMessage)
Console.ReadKey()
Process.Start(path)
Case PackageSignatureValidationResult.SignaturesNotFound
Console.WriteLine(validationMessage)
Case PackageSignatureValidationResult.Invalid, PackageSignatureValidationResult.PartiallyValid
Dim failedCheckDetails = signatureValidation.Items(0).FailedCheckDetails
Console.WriteLine(validationMessage)
Dim i As Integer = 1
For Each checkResult As SignatureCheckResult In failedCheckDetails
Console.WriteLine(String.Format("Validation details {0}: " & ControlChars.CrLf & "{1} failed, Info: {2} " & ControlChars.CrLf, i, checkResult.CheckType, checkResult.Info))
i += 1
Next checkResult
Console.ReadKey()
End Select
End Sub
Object SignatureCheckResult
See Also