IDocumentService.VerifySignature — метод (Document, BaseCardSignature, X509Certificate2, Boolean, Boolean, ICollection<CardFieldSetting>)
Выполняет проверку ЭП, установленной на документе, файлах документа или полях, и возвращает результат проверки.
-
Пространство имён:
DocsVision.BackOffice.ObjectModel.Services
-
Сборка:
DocsVision.BackOffice.ObjectModel.dll
Синтаксис
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
Результат проверки ЭП
Исключения
Исключение | Условие |
---|---|
Ошибка возвращается в случае, если не задан параметр |
Примеры
Ниже приведён пример скрипта карточки, определяющий действительность ЭП, установленных на основным и дополнительных файлах карточки, а также действительность подписи установленной на контролируемые поля
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 | Оповещение пользователя о результате проверки ЭП. |