Проверка подлинности ЭП в документе

Ниже приведён пример проверки действительности подписи, установленной на поля документа. В этом случае проверка подписи на файлах не проводится. Для проверки вызывается метод CheckActualSignature сервиса документов IDocumentService.

IDocumentService documentService = objectContext.GetService<IDocumentService>();
IUserProfileCardService iUserProfileCardService = objectContext.GetService<IUserProfileCardService>();

Document document = objectContext.GetObject<Document>(new Guid("00000000-0000-0000-0000-000000000000")); (1)

var fields = documentService.GetKindSettings(document.SystemInfo.CardKind).DocumentSignature.Fields; (2)

foreach (var item in document.MainInfo.SignatureList.Signatures)
{
 X509Certificate2 certificate = iUserProfileCardService.GetCertificate(item.Signer.AccountName); (3)

 bool isCheckOk = documentService.CheckActualSignature(document, fields, item); (4)
 Console.WriteLine("{0} -- {1}",item.Signer.DisplayName, isCheckOk);
}
1 Получение документа с идентификатором 00000000-0000-0000-0000-000000000000.
2 Получение списка подписываемых полей в данном виде документа.
3 Получение сертификата из профиля пользователя подписавшего документ (item.Signer).
4 Проверка подписи, при true — подпись действительна.