DigitalSignatureUtil

DigitalSignatureUtil class

Proporciona métodos para firmar documentos.

Para obtener más información, visite elTrabajar con firmas digitales artículo de documentación.

public static class DigitalSignatureUtil

Métodos

NombreDescripción
static LoadSignatures(Stream)Carga firmas digitales del documento usando stream.
static LoadSignatures(string)Carga firmas digitales desde el documento.
static RemoveAllSignatures(Stream, Stream)Elimina todas las firmas digitales del documento en la secuencia de origen y escribe el documento sin firmar en la secuencia de destino.
static RemoveAllSignatures(string, string)Elimina todas las firmas digitales del archivo de origen y escribe el archivo sin firmar en el archivo de destino.
static Sign(Stream, Stream, CertificateHolder)Firma el documento fuente utilizando lo indicadoCertificateHoldercon firma digital y escribe el documento firmado en el flujo de destino.
static Sign(string, string, CertificateHolder)Firma el documento fuente utilizando lo indicadoCertificateHolder con firma digital y escribe el documento firmado en el archivo de destino.
static Sign(Stream, Stream, CertificateHolderSignOptions)Firma el documento fuente utilizando lo indicadoCertificateHolder ySignOptions con firma digital y escribe el documento firmado en el flujo de destino.
static Sign(string, string, CertificateHolderSignOptions)Firma el documento fuente utilizando lo indicadoCertificateHolder ySignOptions con firma digital y escribe el documento firmado en el archivo de destino.

Observaciones

Dado que la firma digital funciona con el contenido del archivo en lugar del modelo de objetos del documento, estos métodos se colocan en una clase separada.

Los formatos admitidos sonDoc yDocx.

Ejemplos

Muestra cómo cargar firmas desde un documento firmado digitalmente.

// Hay dos formas de cargar la colección de firmas digitales de un documento firmado utilizando la clase DigitalSignatureUtil.
// 1 - Cargar desde un documento desde un nombre de archivo del sistema de archivos local:
DigitalSignatureCollection digitalSignatures = 
    DigitalSignatureUtil.LoadSignatures(MyDir + "Digitally signed.docx");

// Si esta colección no está vacía, podemos verificar que el documento esté firmado digitalmente.
Assert.AreEqual(1, digitalSignatures.Count);

// 2 - Cargar desde un documento desde un FileStream:
using (Stream stream = new FileStream(MyDir + "Digitally signed.docx", FileMode.Open))
{
    digitalSignatures = DigitalSignatureUtil.LoadSignatures(stream);
    Assert.AreEqual(1, digitalSignatures.Count);
}

Muestra cómo eliminar firmas digitales de un documento firmado digitalmente.

// Hay dos formas de utilizar la clase DigitalSignatureUtil para eliminar firmas digitales
// de un documento firmado guardando una copia sin firmar en algún otro lugar del sistema de archivos local.
// 1 - Determinar las ubicaciones tanto del documento firmado como de la copia sin firmar mediante cadenas de nombre de archivo:
DigitalSignatureUtil.RemoveAllSignatures(MyDir + "Digitally signed.docx",
    ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromString.docx");

// 2 - Determinar las ubicaciones tanto del documento firmado como de la copia sin firmar mediante flujos de archivos:
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);
    }
}

// Verifique que nuestros dos documentos de salida no tengan firmas digitales.
Assert.That(DigitalSignatureUtil.LoadSignatures(ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromString.docx"), Is.Empty);
Assert.That(DigitalSignatureUtil.LoadSignatures(ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromStream.docx"), Is.Empty);

Ver también