首页 > 解决方案 > 在 ASP.NET Core 中签署 MS PowerPoint 宏

问题描述

由于我们的公司演示模板中有用于显示幻灯片编号等内容的宏,因此运行来自不受信任来源的宏存在安全风险。MS office 允许签署宏项目。这个想法是签署那些内部宏文件并禁止执行未签名的宏。对于中型公司来说,这个过程不能手动处理。

为了构建一个允许用户签署宏的 ASP.NET Core Web 应用程序,我发现aspose是唯一可以签署 PowerPoint 和 MS Excel 的解决方案。它还有一个名为 Aspose.Slides 的子项目,可以处理 PowerPoint 文件。我在 Excel 和 Word 上制作了一个有效的 POC,但不适用于 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");

如何使用 ASP.NET Core 对 MS PowerPoint 文件进行签名?这可能与 Aspose.Slides 或是否有任何其他库?

最好使用支持 Linux 的 ASP.NET Core,因为我们希望在 Docker/Kubernetes 上运行应用程序。Windows 解决方案只有在没有其他方法的情况下。

标签: c#asp.net-corepowerpointasposeaspose-slides

解决方案


Aspose.Slides 还不支持唱歌 VBAProject,但我已经在 ID SLIDESNET-41589下添加了这个任务,它将在最近的版本中准备好。

请在发行说明页面查看更新。

注意:我在 Aspose 担任开发人员布道师。


推荐阅读