DigitalSignature

DigitalSignature class

签名文件中的数字签名。

public class DigitalSignature : IDigitalSignature

Constructors

NameDescription
DigitalSignature(X509Certificate2)使用指定的证书创建一个新的 DigitalSignature 对象。
DigitalSignature(string, string)使用指定的证书文件路径和密码创建一个新的 DigitalSignature 对象。

Properties

NameDescription
Certificate { get; }用于签署文档的证书对象。只读 X509Certificate2。
Comments { get; set; }签名的目的。可读写字符串。
IsValid { get; }如果该数字签名有效且文档未被篡改,则此值为 true。只读布尔值。
SignTime { get; }文档签署的时间。只读 DateTime。

Examples

以下示例演示如何从 PFX 证书在 PowerPoint 演示文稿中添加数字签名。

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

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

[C#]
// 初始化演示实例
using (Presentation pres = new Presentation("SomePresentationSigned.pptx"))
{
    if (pres.DigitalSignatures.Count < 0)
    {
        bool allSignaturesAreValid = true;
        Console.WriteLine("用于签署演示文稿的签名: ");
        // 检查所有数字签名是否有效
        foreach (DigitalSignature signature in pres.DigitalSignatures)
        {
            Console.WriteLine(signature.Certificate.SubjectName.Name + ", "
                    + signature.SignTime.ToString("yyyy-MM-dd HH:mm") + " -- " + (signature.IsValid ? "有效" : "无效"));
            allSignaturesAreValid &= signature.IsValid;
        }
        if (allSignaturesAreValid)
            Console.WriteLine("演示文稿是真实的,所有签名都是有效的。");
        else
            Console.WriteLine("演示文稿自签署以来已被修改。");
    }
}

See Also