ITaskService.VerifySignature — метод (Task, BaseCardSignature, X509Certificate2, Boolean, IEnumerable<CardFieldSetting>)
Выполняет верификацию ЭП, установленной на полях карточки Задание, а также на Документах, связанных с заданием.
-
Пространство имён:
DocsVision.BackOffice.ObjectModel.Services
-
Сборка:
DocsVision.BackOffice.ObjectModel.dll
Синтаксис
BaseCardSignatureVerification VerifySignature(Task task, BaseCardSignature signature, X509Certificate2 certificate, bool signDocument, IEnumerable<CardFieldSetting> fields)
- Параметры
-
- task
-
Тип:
Task
Задание, содержащий подписанные данные
- signature
-
Тип:
BaseCardSignature
Проверяемая подпись
- certificate
-
Тип:
System.Security.Cryptography.X509Certificates.X509Certificate2
Сертификат ЭП сотрудника, чей сертификат использовался при подписании
- signDocument
-
Тип:
System.Boolean
Параметр не проверяется
- fields
-
Тип:
System.Collections.Generic.IEnumerable<CardFieldSetting>
Коллекция полей типа
CardFieldSetting
, у которых должна быть проверена подпись. Список подписываемых полей задаётся в Справочнике видов карточек
- Возвращаемое значение
-
Тип:
BaseCardSignatureVerification
Результат проверки ЭП
Исключения
Исключение | Условие |
---|---|
Ошибка возвращается в случае, если не задан параметр |
Примеры
using System.Linq;
using System.Windows.Forms.Design;
using DocsVision.BackOffice.ObjectModel;
using DocsVision.BackOffice.ObjectModel.Services;
using DocsVision.BackOffice.WinForms.Controls;
using DocsVision.Platform.ObjectModel;
namespace BackOffice
{
public class CardTaskТестScript : CardTaskНа_ознакомлениеScript
{
private void VerifySignature_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
ObjectContext objectContext = base.CardControl.ObjectContext;
Task task = (base.BaseObject as Task);
ITaskService taskService = objectContext.GetService<ITaskService>();
IUIService uiService = objectContext.GetService<IUIService>(); (1)
bool cancel = false;
var certificate = SelectCertificateForm.SelectCertificate(ref cancel, base.CardControl.ObjectContext);
if (cancel) return; (2)
var taskSetting = taskService.GetKindSettings(task.SystemInfo.CardKind); (3)
var signatureSetting = taskSetting.OperationSignatures.First(t => t.SignatureName = "SignOperation"); (4)
BaseCardSignature lastSignature = task.MainInfo.SignatureList.Signatures.Last(); (5)
var result = taskService.VerifySignature(task, lastSignature, certificate, true, signatureSetting.Fields); (6)
if (result.IsValid) (7)
{
uiService.ShowMessage("Задание является надежным");
} else {
uiService.ShowError("Задание не является надежным");
}
}
}
}
1 | Получение сервисов для работы с заданиями и интерфейсом пользователя. |
2 | Получение сертификата. |
3 | Получение настроек вида карточки. |
4 | Получение настроек (с названием SignOperation ) подписания операции, которые определены в Справочнике видов карточек
При проверке подписей установленных на поля карточки, будет использован список полей из настроек. |
5 | Получение последней установленной подписи. |
6 | Проверка подписи. |
7 | Оповещение пользователя о результате проверки ЭП. |