C# MS Office Interop 应用 Azure 信息保护 (AIP)

C# MS Office Interop apply Azure Information Protection (AIP)

我需要创建 PowerPoint,但是当我保存文件(另存为方法)时,有 Azure 分类加载项需要手动单击 (public/internal/confidential) 才能完成保存 ppt 文件。

using Microsoft.Office.Interop.PowerPoint;
var pptApplication = new Application();
var pptPresentation = pptApplication.Presentations.Add();
pptPresentation.SaveAs(@"C:\temp\test.pptx", PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoTrue);
pptPresentation.Close();
pptApplication.Quit();

我找到了应用标签的在线 PowerShell 方法,但即使它有效,它也是在已经存在(保存)的文件上完成的。

然后另一个发现是 但我不知道如何应用标签 MSIP_Label__Enabled=True

我有在我的组织中使用的标签的 GUID

strMSIPClassConfidential = "MSIP_Label_-GUID-_Enabled=true;

但还没有找到如何将其应用于具有提供的互操作的元数据。有人知道吗?

使用 PowerPoint 互操作,因为我还没有找到任何免费的库。

成功了。如果有人想对代码的内容发表评论,请随时编辑。

void ApplyAIPLabel(Presentation pptPresentation) {
  var customDocumentProperties = pptPresentation.CustomDocumentProperties;
  var typeDocCustomProps = customDocumentProperties.GetType();
  var propertyName = "MSIP_Label_<GUID>_Enabled";
  var propertyValue = "True";
  object[] oArgs = { propertyName, false, MsoDocProperties.msoPropertyTypeString, propertyValue };
  typeDocCustomProps.InvokeMember("Add", BindingFlags.Default | BindingFlags.InvokeMethod, null, customDocumentProperties, oArgs);
}