Подписывать макросы MS PowerPoint в ASP.NET Core - PullRequest
0 голосов
/ 01 декабря 2019

Поскольку в нашем корпоративном шаблоне презентации есть макросы для таких вещей, как отображение номеров слайдов, существует угроза безопасности при запуске макросов из ненадежных источников. 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, только если нет другого пути.

1 Ответ

2 голосов
/ 02 декабря 2019

Aspose.Slides пока не поддерживает пение VBAProject, но я добавил эту задачу под ID SLIDESNET-41589 , и она будет готова в ближайших выпусках.

Пожалуйста, проверьтеобновления на Примечания к выпуску стр.

Примечание : я работаю в качестве разработчика Evangelist на Aspose.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...