DigitalSignature

DigitalSignature 类

已签名文件中的数字签名。

public class DigitalSignature : IDigitalSignature

构造函数

名称描述
DigitalSignature(X509Certificate2)使用指定的证书创建新的 DigitalSignature 对象。
DigitalSignature(string, string)使用指定的证书文件路径和密码创建新的 DigitalSignature 对象。

属性

名称描述
Certificate { get; }用于对文档签名的证书对象。只读 X509Certificate2。
Comments { get; set; }签名的用途。可读写 String。
IsValid { get; }如果此数字签名有效且文档未被篡改,则此值为 true。只读 Boolean。
SignTime { get; }文档签署的时间。只读 DateTime。

示例

下面的示例演示如何在 PowerPoint 演示文稿中使用 PFX 证书添加数字签名。

[C#]
// 初始化 Presentation 实例
using (Presentation pres = new Presentation())
{
    // 使用 PFX 文件和 PFX 密码创建 DigitalSignature 对象
    DigitalSignature signature = new DigitalSignature("testsignature1.pfx", @"testpass1");
    // 为新数字签名添加注释
    signature.Comments = "Aspose.Slides digital signing test.";
    // 将数字签名添加到演示文稿
    pres.DigitalSignatures.Add(signature);
    // 保存演示文稿
    pres.Save("SomePresentationSigned.pptx", SaveFormat.Pptx);
}

下面的示例代码演示如何验证 PowerPoint 演示文稿的数字签名。

[C#]
// 初始化 Presentation 实例
using (Presentation pres = new Presentation("SomePresentationSigned.pptx"))
{
    if (pres.DigitalSignatures.Count < 0)
    {
        bool allSignaturesAreValid = true;
        Console.WriteLine("Signatures used to sign the presentation: ");
        // 检查所有数字签名是否有效
        foreach (DigitalSignature signature in pres.DigitalSignatures)
        {
            Console.WriteLine(signature.Certificate.SubjectName.Name + ", "
                    + signature.SignTime.ToString("yyyy-MM-dd HH:mm") + " -- " + (signature.IsValid ? "VALID" : "INVALID"));
            allSignaturesAreValid &= signature.IsValid;
        }
        if (allSignaturesAreValid)
            Console.WriteLine("Presentation is genuine, all signatures are valid.");
        else
            Console.WriteLine("Presentation has been modified since signing.");
    }
}

另请参见