c# - 在 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 解决方案只有在没有其他方法的情况下。
解决方案
Aspose.Slides 还不支持唱歌 VBAProject,但我已经在 ID SLIDESNET-41589下添加了这个任务,它将在最近的版本中准备好。
请在发行说明页面查看更新。
注意:我在 Aspose 担任开发人员布道师。
推荐阅读
- python - Pandas 系列 - 如何使用字符串进行分组并以更好的方式执行值的平均值
- c - 使用 fgets() 利用 C 程序
- c# - 通过指向对象来获取对象名称 Unity Raycast
- reactjs - 如何在 ReactJS 中的 http://localhost:3000/ 和 TMDB api 之间启用 CORS?
- sql-server - 如何在sql server中检查特定用户的组
- abap - 将 KNKK 选择查询迁移到 S/4HANA?
- javascript - 尝试使用AngularJs关闭浏览器选项卡或窗口时如何进行服务调用
- c# - 无法从 AVAsset 获取缩略图
- php - 整数值忽略零并返回完整数字
- javascript - 如何使用javascript将base64彩色图像转换为灰度图像