IDocumentService.VerifySignature — метод (Document, BaseCardSignature, X509Certificate2, Boolean, Boolean, ICollection<CardFieldSetting>)

Выполняет проверку ЭП, установленной на документе, файлах документа или полях, и возвращает результат проверки.

Синтаксис

BaseCardSignatureVerification VerifySignature(Document document, BaseCardSignature signature, X509Certificate2 certificate, bool signDocument, bool signAttachments, ICollection<CardFieldSetting> fields);
Параметры
document

Тип: Document

Документ, содержащий подписанные данные

signature

Тип: BaseCardSignature

ЭП, установленная на данной карточке

certificate

Тип: System.Security.Cryptography.X509Certificates.X509Certificate2

Сертификат ЭП

signDocument

Тип: System.Boolean

Выполнять проверку подписи, установленной на документе — проверяется подпись, установленная на основных файлах

signAttachments

Тип: System.Boolean

Выполнять проверку подписи, установленной на дополнительных файлах

fields

Тип: System.Collections.Generic.ICollection<CardFieldSetting>

Коллекция полей типа CardFieldSetting, у которых должна быть проверена подпись. Список подписываемых полей задаётся в Справочнике видов карточек

Возвращаемое значение

Тип: BaseCardSignatureVerification

Результат проверки ЭП

Исключения

Исключение Условие

System.ArgumentNullException

Ошибка возвращается в случае, если не задан параметр document или signature.

Примеры

Ниже приведён пример скрипта карточки, определяющий действительность ЭП, установленных на основным и дополнительных файлах карточки, а также действительность подписи установленной на контролируемые поля

using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Windows.Forms.Design;

using DocsVision.BackOffice.ObjectModel;
using DocsVision.BackOffice.ObjectModel.Services;
using DocsVision.BackOffice.ObjectModel.Services.Entities.KindSetting;
using DocsVision.Platform.ObjectModel;

namespace BackOffice
{
 public class CardDocumentПримерScript : CardDocumentДокументУДScript
 {
  private void verifySignature_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  {
   Document document = (base.BaseObject as Document);
   ObjectContext objectContext = base.CardControl.ObjectContext;

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

   X509Certificate2 certificate = iUserProfileCardService.GetCertificate(base.Session.Properties["AccountName"].Value.ToString()); (2)

   DocumentSetting documentSetting = documentService.GetKindSettings(document.SystemInfo.CardKind); (3)

   BaseCardSignature lastSignature = document.MainInfo.SignatureList.Signatures.Last(); (4)

   var result = documentService.VerifySignature(document, lastSignature, certificate, true, true, documentSetting.DocumentSignature.Fields); (5)

   if (result.IsValid) (6)
   {
    uiService.ShowMessage("Документ является надежным");
   } else {
    uiService.ShowError("Документ не является надежным");
   }
  }
 }
}
1 Получение необходимых сервисов.
2 Получение сертификата сотрудника.
3 Получение настроек вида карточки Документ.
4 Получение последней установленной подписи, по ней будет определять подлинность документа.
5 Выполнение проверки ЭП, установленной на основные и дополнительные документы, а также на поля (для подписания) определённые в Справочнике видов карточек.
6 Оповещение пользователя о результате проверки ЭП.