DigitalSignatureUtil

DigitalSignatureUtil class

Предоставляет методы для подписания документа.

Чтобы узнать больше, посетитеРабота с цифровыми подписями документальная статья.

public static class DigitalSignatureUtil

Методы

ИмяОписание
static LoadSignatures(Stream)Загружает цифровые подписи из документа с помощью stream.
static LoadSignatures(string)Загружает цифровые подписи из документа.
static RemoveAllSignatures(Stream, Stream)Удаляет все цифровые подписи из документа в исходном потоке и записывает неподписанный документ в целевой поток.
static RemoveAllSignatures(string, string)Удаляет все цифровые подписи из исходного файла и записывает неподписанный файл в целевой файл.
static Sign(Stream, Stream, CertificateHolder)Подписывает исходный документ, используя заданныйCertificateHolder с цифровой подписью и записывает подписанный документ в целевой поток.
static Sign(string, string, CertificateHolder)Подписывает исходный документ, используя заданныйCertificateHolder с цифровой подписью и записывает подписанный документ в целевой файл.
static Sign(Stream, Stream, CertificateHolderSignOptions)Подписывает исходный документ, используя заданныйCertificateHolder иSignOptions с цифровой подписью и записывает подписанный документ в целевой поток.
static Sign(string, string, CertificateHolderSignOptions)Подписывает исходный документ, используя заданныйCertificateHolder иSignOptions с цифровой подписью и записывает подписанный документ в целевой файл.

Примечания

Поскольку цифровая подпись работает с содержимым файла, а не с объектной моделью документа, эти методы выделены в отдельный класс.

Поддерживаемые форматы: Doc , Dot , Docx , Dotx , Docm , Dotm , Odt , Ott.

Примеры

Показывает, как загрузить подписи из документа с цифровой подписью.

// Существует два способа загрузки коллекции цифровых подписей подписанного документа с использованием класса DigitalSignatureUtil.
// 1 - Загрузка из документа из локальной файловой системы имя файла:
DigitalSignatureCollection digitalSignatures = 
    DigitalSignatureUtil.LoadSignatures(MyDir + "Digitally signed.docx");

// Если эта коллекция непустая, то мы можем проверить, имеет ли документ цифровую подпись.
Assert.AreEqual(1, digitalSignatures.Count);

// 2 - Загрузка из документа из FileStream:
using (Stream stream = new FileStream(MyDir + "Digitally signed.docx", FileMode.Open))
{
    digitalSignatures = DigitalSignatureUtil.LoadSignatures(stream);
    Assert.AreEqual(1, digitalSignatures.Count);
}

Показывает, как удалить цифровые подписи из документа с цифровой подписью.

// Существует два способа использования класса DigitalSignatureUtil для удаления цифровых подписей
// из подписанного документа, сохранив его неподписанную копию где-нибудь в другом месте локальной файловой системы.
// 1 - Определить местоположение как подписанного документа, так и неподписанной копии по строкам имени файла:
DigitalSignatureUtil.RemoveAllSignatures(MyDir + "Digitally signed.docx",
    ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromString.docx");

// 2 - Определить местоположение как подписанного документа, так и неподписанной копии по файловым потокам:
using (Stream streamIn = new FileStream(MyDir + "Digitally signed.docx", FileMode.Open))
{
    using (Stream streamOut = new FileStream(ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromStream.docx", FileMode.Create))
    {
        DigitalSignatureUtil.RemoveAllSignatures(streamIn, streamOut);
    }
}

// Проверяем, что оба наших выходных документа не имеют цифровых подписей.
Assert.AreEqual(0, DigitalSignatureUtil.LoadSignatures(ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromString.docx").Count);
Assert.AreEqual(0, DigitalSignatureUtil.LoadSignatures(ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromStream.docx").Count);

Смотрите также