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 | Оповещение пользователя о результате проверки ЭП. |