ICryptService.RemoveEncryption — метод (X509Certificate2, Guid)
Расшифровывает файл и удаляет связанные с ним крипто-объекты.
-
Пространство имён:
DocsVision.BackOffice.ObjectModel.Services
-
Сборка:
DocsVision.BackOffice.ObjectModel.dll
Синтаксис
void RemoveEncryption(X509Certificate2 certificate, Guid fileId)
- Параметры
-
- certificate
-
Тип:
System.Security.Cryptography.X509Certificates.X509Certificate2
Сертификат шифрования, которым зашифрован файл
- fileId
-
Тип:
System.Guid
Идентификатор зашифрованного файла
Исключения
Исключение | Условие |
---|---|
Ошибка возвращается в случае, если не задан параметр |
|
Ошибка возвращается в случае, если файл с указанным идентификатором не существует. |
Заметки
Данный метод, в отличие от метода ICryptService.DecryptFile
, удаляет крипто-объекты, используемые для расшифровки файла сотрудниками, которым предоставлен соответствующий доступ.
Примеры
Приведенный ниже пример содержит код скрипта карточки типа Документ, который расшифровывает основные файла текущей карточки. В ходе работы скрипта будет вызвана при необходимости форма для выбора сертификата шифрования.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Security.Cryptography.X509Certificates;
using DocsVision.Platform.ObjectManager;
using DocsVision.Platform.ObjectModel;
using DocsVision.BackOffice.WinForms;
using DocsVision.BackOffice.WinForms.Controls;
using DocsVision.BackOffice.ObjectModel;
using DocsVision.BackOffice.ObjectModel.Services;
namespace BackOffice
{
public class CardDocumentПримерScript : CardDocumentДокументУДScript
{
private void RemoveEncryption_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
bool cancel = false;
X509Certificate2 certificate = SelectCertificateForm.SelectCertificate(ref cancel, base.CardControl.ObjectContext);
if(cancel) return; (1)
ICryptService cryptService = base.CardControl.ObjectContext.GetService<ICryptService>(); (2)
IEnumerable<DocumentFile> mainFiles = (base.BaseObject as Document).Files.Where<DocumentFile>(t => t.FileType = DocumentFileType.Main); (3)
foreach (DocumentFile item in mainFiles)
{
FileData fileData = base.Session.FileManager.GetFile(item.FileVersionRowId);
if(fileData.Encrypted) (4)
{
cryptService.RemoveEncryption(certificate, item.FileVersionRowId);
}
}
}
}
}
1 | Вызов формы выбора сертификата. |
2 | Получения сервиса шифрования базовых объектов. |
3 | Получение основных файлов. |
4 | Проверка наличия зашифрованного файла. |