在当前用户商店中使用x509证书签署pdf文件。

问题描述 投票:0回答:1

首先请注意,我是这个平台的新手,因此不习惯规则或 "最佳实践",所以如果有什么我应该编辑的,请告诉我。

但现在,这是我的问题。

我想用当前用户存储的证书来签署一个pdf文档。为了完成这个任务,我不允许使用需要许可证的库,所以基本上我使用的所有东西都必须是开源的。我必须使用的证书的私钥被设置为不可导出。我已经用 "Syncfusion PDF "库完成了任务,但不幸的是,它不是开源的。

由于我对编程,尤其是c#编程相当陌生,我现在很难找到一个不使用Syncfusion的解决方案。希望有人能帮忙:)

下面是使用Syncfusion的代码,它工作得非常好。

Stream stream = new FileStream(src, FileMode.OpenOrCreate);
PdfLoadedDocument loadedDocument = new PdfLoadedDocument(stream);
PdfLoadedPage page = loadedDocument.Pages[0] as PdfLoadedPage;
PdfLoadedSignatureField field = loadedDocument.Form.Fields[0] as PdfLoadedSignatureField;
X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
X509Certificate2 digitalID = collection[0];
PdfCertificate certificate = new PdfCertificate(digitalID);
PdfSignature pdf1 = new PdfSignature(loadedDocument, page, certificate, "Signature", field);
field.Signature = pdf1;
loadedDocument.Save(stream);
loadedDocument.Close(true);
c# pdf signature sign syncfusion
1个回答
0
投票

我们已经分析了你的需求。但我们只能帮助你,如果你在Syncfusion库有任何疑问。

注意事项 : 我在Syncfusion工作。

© www.soinside.com 2019 - 2024. All rights reserved.