Поскольку в нашем корпоративном шаблоне презентации есть макросы для таких вещей, как отображение номеров слайдов, существует угроза безопасности при запуске макросов из ненадежных источников. MS office позволяет подписывать макропроекты . Идея состоит в том, чтобы подписать эти внутренние макрофайлы и запретить выполнение не подписанных макросов. Для компании среднего размера этот процесс не может быть обработан вручную.
Для создания веб-приложения ASP.NET Core, позволяющего пользователям подписывать свои макросы, я нашел aspose как единственное решение, которое может подписывать PowerPoint, а также MS Excel. Он также имеет подпроект Aspose.Slides, который может работать с файлами PowerPoint. Я сделал рабочий POC на Excel, а также Word, но не для PowerPoint. Документация просто показывает, как создавать / редактировать / удалять существующие макросы:
string macroTestFilePath = @"Path\To\Testfile.pptm";
var presentation = new Presentation(macroTestFilePath);
var firstVbModule = presentation.VbaProject.Modules.FirstOrDefault();
Этот пример позволяет мне получить доступ к моему тестовому коду макроса, но я не могу найти такие атрибуты, как VbaProject
на объекте представления или на чем-то похожем на его подпись, как это возможно на Aspose.Cells :
Workbook wb = new Workbook(dataDir + "Book1.xlsm");
X509Certificate2 cert = new X509Certificate2("SampleCert.pfx", "1234");
DigitalSignature ds = new DigitalSignature(cert, "Signing Digital Signature using Aspose.Cells", DateTime.Now);
wb.VbaProject.Sign(ds);
wb.Save("DigitallySigned_out.xlsm");
Как можно подписать файлы MS PowerPoint с помощью ASP.NET Core? Это возможно с Aspose.Slides или есть другие библиотеки?
Было бы предпочтительным ASP.NET Core с поддержкой Linux, поскольку мы хотим запустить приложение в Docker / Kubernetes. Решения для Windows, только если нет другого пути.