Цифровая подпись .xlsx файла с помощью System.IO.Packaging в c# - PullRequest
0 голосов
/ 14 января 2020

Greeings,

Я пытаюсь подписать файл Excel цифровой подписью с помощью System.IO.Packaging, но я не могу заставить это работать.

Упрощенный код, который я использую, выглядит следующим образом :

var packageFile = @"C:\temp\test.xlsx";
var package = Package.Open(packageFile, FileMode.Open);
var packageDigitalSignatureManager = new PackageDigitalSignatureManager(package);
var uriCollection = package.GetParts().ToList().Select(part => part.Uri);
X509Certificate2 cert = new X509Certificate2(@"D:\certs\adrianganea.pfx", "password", X509KeyStorageFlags.Exportable);
var signature = packageDigitalSignatureManager.Sign(uriCollection, cert);

Документ подписан, но подпись недействительна: Недействительные подписи

Есть идеи?

Большое спасибо, Адриан

1 Ответ

0 голосов
/ 15 января 2020

Не имеет значения, похоже, что сертификат подписи должен быть встроен: packageDigitalSignatureManager .CertificateOption =CertificateEmbeddingOption.InSignaturePart;

Эта ссылка содержит хороший пример.

...