获取并验证 PDF 中的数字签名
Spire.PDF for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。致力于在于帮助开发人员轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档,而无需安装 Microsoft Word。
行号用于在每行文本旁边显示 Word 自动计算的行数。当我们需要参考合同或法律文件等文档中的特定行时,它非常有用。word中的行号功能允许我们设置起始值、编号间隔、与文本的距离以及行号的编号方式。使用 Spire.Doc,我们可以实现上述所有功能。本文将介绍如何将 HTML 转换为 PDF。
欢迎加入spire技术交流群:767755948
广泛用于保护 PDF 文件。因此,当您查看带有数字签名的 PDF 文件时,需要获取并验证数字签名。本文通过 C# 代码向您展示了 获取和验证 PDF 数字签名的解决方案。
确保已正确安装 Spire.PDF for .NET(2.9 或以上版本)。在下载的 Bin 文件夹中添加 Spire.PDF.dll 作为引用,路径如下:"..\Spire.PDF\Bin\NET4.0\ Spire.PDF.dl"。
下面是如何获取和验证数字签名的 C# 代码片段:
加载带有数字签名的 PDF 文件。
[C#]
1 string filename = @"..\..\DigitalSignature.pdf";
从 PDF 中获取所有签名:
[C#]
01 List<PdfSignature> signatures = new List<PdfSignature>(); 02 03 PdfDocument doc = new PdfDocument(filename); 04 05 PdfFormWidget form = (PdfFormWidget)doc.Form; 06 for (int i = 0; i < form.FieldsWidget.Count; ++i) 07 { 08 PdfSignatureFieldWidget field = form.FieldsWidget[i] as PdfSignatureFieldWidget; 09 10 if (field != null && field.Signature != null) 11 { 12 PdfSignature signature = field.Signature; 13 signatures.Add(signature); 14 } 15 }
获得第一个签名:
[C#]
1 PdfSignature signatureOne = signatures[0];
验证签名:
[C#]
1 try 2 { 3 bool bSignature = signatureOne.VerifySignature(); 4 } 5 catch (Exception ex) 6 { 7 Console.WriteLine(ex.Message); 8 Console.ReadLine(); 9 }
获取签名证明:
[C#]
1 X509Certificate2 certificate = signatureOne.Certificate as X509Certificate2;
获取签名日期:
[C#]
1 DateTime date = signatureOne.Date;
获取签名开始和结束有效的日期:
[C#]
1 DateTime validStart = certificate.NotBefore; 2 DateTime validEnd = certificate.NotAfter;
获取证书的版本:
[C#]
1 int version = certificate.Version;
从证书中获取主题区分名称:
[C#]
1 int version = certificate.Version;
从证书中获取主题区分名称:
[C#]
1 string subject = certificate.Subject;
请查看下面的有效截图: