Проверка подлинности ЭП в документе
Ниже приведён пример проверки действительности подписи, установленной на поля документа. В этом случае проверка подписи на файлах не проводится. Для проверки вызывается метод 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 — подпись действительна. |