C#文档上的多个数字签名

时间:2013-08-27 08:03:58

标签: c# .net document digital-signature

我在C#.net应用程序中要求能够为文档添加多个数字签名。该文档将作为模板上传,然后将经历几个处理阶段(邮件合并),然后将下载。需要让几个方面各自进行数字签名。

我有以下问题

1)每个人是否需要单独的证书才能签名。 2)我是选择在网络服务器上安装办公室还是购买第三方组件。 3)我非常感谢c#/ .net中的任何示例(使用docx或pdf来证明这一点)

2 个答案:

答案 0 :(得分:1)

下面使用DocuSign WebService编写代码,发送文件由多方签名: 您可以从其网站获取WebService(.asmx)网址,并介绍如何将此Service Reference添加到您的项目中。

您可以从here

获取有关信封或标签的详细信息
Envelope envelope = new Envelope();
envelope.Subject = subject;
envelope.EmailBlurb = "This is Awesome. Kung fu Panda is just awesome";
envelope.AccountId = ConfigurationManager.AppSettings["APIAccountId"];

Recipient recipient = new Recipient();
recipient.UserName = name;
recipient.Email = txtRecipientEmail.Text;
recipient.ID = "1";
recipient.Type = RecipientTypeCode.Signer;

//here you can add multiple recipients
envelope.Recipients = new Recipient[] { recipient };


Document document = new Document();
document.PDFBytes =  FileHelper.StreamToByteArray(fileUploadTool1.FileContent );
document.FileExtension = Path.GetExtension(fileUploadTool1.PostedFile.FileName);
document.Name = Path.GetFileName(fileUploadTool1.PostedFile.FileName);
document.ID = "1";
envelope.Documents = new Document[] { document };

Tab tab1 = new Tab();
tab1.RecipientID = "1";
tab1.PageNumber = "1";
tab1.DocumentID = "1";
tab1.Type = TabTypeCode.SignHere;
tab1.XPosition = "50";
tab1.YPosition = "200";

Tab tab2 = new Tab();
tab2.RecipientID = "1";
tab2.PageNumber = "1";
tab2.DocumentID = "1";
tab2.Type = TabTypeCode.DateSigned;
tab2.XPosition = "110";
tab2.YPosition = "225";

envelope.Tabs = new Tab[] { tab1, tab2 };
APIServiceSoapClient proxy = Get_Proxy();
EnvelopeStatus status = proxy.CreateAndSendEnvelope(envelope);
StatusLabel.Text = "The envelope is " + status.Status.ToString() + ".";

答案 1 :(得分:1)

  1. 每个人通常为自己签署文件,从而确认他是作者或他授权该文件。在这种情况下,他/她使用自己的证书和私钥。也可能有几个人共享相同的证书和密钥(例如,几个VP,每个人都有权批准某个文档)。

  2. 您可以使用某些Office自动化,也可以使用某些第三方库,例如我们的SecureBlackbox(其他功能包括使用格式特定的签名标准支持PDF签名,Office文档签名和XML签名) ,还有CMS / CAdES“通用”签名)。样本包含在可下载的包中。

  3. 请注意,PDF格式不支持具有多个独立签名。 Office签名格式确实支持独立签名(此外,在二进制格式中,不能进行会签签名)。