Sensitivitätslabels in PowerPoint-Präsentationen in .NET verwalten

Übersicht

Microsoft Purview Sensitivitätsbezeichnungen helfen Organisationen, Dokumente zu klassifizieren und zu verwalten. Während der automatisierten Präsentationsverarbeitung kann eine Anwendung ein vorhandenes Label beibehalten, ein von einer Richtlinie ausgewähltes Label anwenden, dessen Zustand aktualisieren oder Metadaten eines Labels, die von einem älteren Microsoft Information Protection (MIP)-Arbeitsablauf geschrieben wurden, migrieren.

Aspose.Slides stellt moderne Sensitivitätslabel‑Metadaten über Presentation.SensitivityLabels. Diese Eigenschaft gibt eine ISensitivityLabelCollection zurück, die vor dem Speichern der Präsentation als PPTX inspiziert und geändert werden kann.

Sensitivitätslabel‑Eigenschaften verstehen

Jedes ISensitivityLabel enthält die folgenden Metadaten:

Eigenschaft Zweck
ISensitivityLabel.Id Identifiziert das Sensitivitätslabel in der Purview‑Richtlinie.
ISensitivityLabel.SiteId Identifiziert die Site, die mit der Label‑Richtlinie verknüpft ist.
ISensitivityLabel.IsEnabled Gibt an, ob das Label aktiviert ist.
ISensitivityLabel.IsRemoved Gibt an, dass das Label entfernt wurde. Setzen Sie diese Eigenschaft auf true, wenn der Entfernen‑Zustand in den Metadaten beibehalten werden muss.
ISensitivityLabel.AssignmentMethodType Gibt an, ob das Label automatisch oder durch eine Benutzerentscheidung angewendet wurde.
ISensitivityLabel.ContentMarkTypes Listet die Inhaltskennzeichnungsarten auf, die dem Label zugeordnet sind.

Die Aufzählung SensitivityLabelAssignmentType beschreibt, wie ein Label zugewiesen wurde:

Die Aufzählung SensitivityLabelContentType identifiziert die mit einem Label verbundene Kennzeichnung:

Wert Bedeutung
SensitivityLabelContentType.None Das Label wurde standardmäßig oder automatisch angewendet.
SensitivityLabelContentType.Header Header‑Inhaltskennzeichnung ist dem Label zugeordnet.
SensitivityLabelContentType.Footer Footer‑Inhaltskennzeichnung ist dem Label zugeordnet.
SensitivityLabelContentType.Watermark Wasserzeichen‑Inhaltskennzeichnung ist dem Label zugeordnet.
SensitivityLabelContentType.Encryption Verschlüsselungsschutz ist dem Label zugeordnet.

Mehrere Kennzeichnungstypen können einem Label zugeordnet werden.

Vorhandene Sensitivitätslabels auflisten

Lesen Sie die moderne Label‑Sammlung aus Presentation.SensitivityLabels und enumerieren Sie sie. Das folgende Beispiel listet jede Eigenschaft und Inhaltskennzeichnung auf, die für jedes Label gespeichert ist:

using System;
using Aspose.Slides;

using var presentation = new Presentation("presentation.pptx");
var sensitivityLabels = presentation.SensitivityLabels;

foreach (var sensitivityLabel in sensitivityLabels)
{
    Console.WriteLine("Label ID: " + sensitivityLabel.Id);
    Console.WriteLine("Site ID: " + sensitivityLabel.SiteId);
    Console.WriteLine("Enabled: " + sensitivityLabel.IsEnabled);
    Console.WriteLine("Removed: " + sensitivityLabel.IsRemoved);
    Console.WriteLine("Assignment method: " + sensitivityLabel.AssignmentMethodType);

    foreach (var contentMarkType in sensitivityLabel.ContentMarkTypes)
    {
        Console.WriteLine("Content marking: " + contentMarkType);
    }
}

Ein Sensitivitätslabel mit Inhaltskennzeichnung hinzufügen

Verwenden Sie ISensitivityLabelCollection.Add mit der Label‑ID, der Site‑ID, dem aktivierten Zustand und der Zuweisungsmethode. Nachdem die Methode das neue ISensitivityLabel zurückgegeben hat, fügen Sie die erforderlichen Kennzeichnungswerte über ISensitivityLabel.ContentMarkTypes hinzu.

Das folgende Beispiel fügt ein manuell ausgewähltes Label hinzu, das Footer‑ und Wasserzeichen‑Kennzeichnungen zugeordnet ist, und speichert das Ergebnis anschließend als PPTX:

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation.pptx");
var sensitivityLabels = presentation.SensitivityLabels;

var labelIdentifier = "{11111111-2222-3333-4444-555555555555}";
var siteIdentifier = Guid.Parse("{aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}");
var isEnabled = true;
var assignmentMethod = SensitivityLabelAssignmentType.Privileged;

var sensitivityLabel = sensitivityLabels.Add(
    labelIdentifier,
    siteIdentifier,
    isEnabled,
    assignmentMethod);

sensitivityLabel.ContentMarkTypes.Add(SensitivityLabelContentType.Footer);
sensitivityLabel.ContentMarkTypes.Add(SensitivityLabelContentType.Watermark);

presentation.Save("presentation_with_label.pptx", SaveFormat.Pptx);

Sensitivitätslabel aktualisieren

Die Eigenschaften von ISensitivityLabel sind les‑/schreibbar, außer dass die durch ISensitivityLabel.ContentMarkTypes zurückgegebene Sammlung über deren Listenoperationen modifiziert wird. Nachdem Sie das gewünschte Label gefunden haben, können Sie seine ID, Site‑ID, den aktivierten Zustand, die Zuweisungsmethode, den Entfernen‑Zustand und die Inhaltskennzeichnungstypen aktualisieren. Speichern Sie die Präsentation, um die Änderungen zu übernehmen.

Das folgende Beispiel aktualisiert den aktivierten Zustand und die Zuweisungsmethode des ersten Labels:

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation.pptx");
var sensitivityLabels = presentation.SensitivityLabels;

if (sensitivityLabels.Count > 0)
{
    var sensitivityLabel = sensitivityLabels[0];
    sensitivityLabel.IsEnabled = true;
    sensitivityLabel.AssignmentMethodType = SensitivityLabelAssignmentType.Privileged;
}

presentation.Save("presentation_with_updated_label.pptx", SaveFormat.Pptx);

Ein Sensitivitätslabel als entfernt markieren

Um den Umstand zu erhalten, dass ein Label entfernt wurde, finden Sie das Label und setzen Sie ISensitivityLabel.IsRemoved auf true. Damit bleibt der Label‑Eintrag erhalten, während dessen Entfernen‑Zustand protokolliert wird. Wenn Sie stattdessen einen Eintrag aus der modernen Sammlung löschen müssen, verwenden Sie ISensitivityLabelCollection.RemoveAt; verwenden Sie ISensitivityLabelCollection.Clear , um alle Einträge zu löschen.

Das folgende Beispiel markiert ein bestimmtes Label als entfernt und speichert die aktualisierte Präsentation:

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation.pptx");
var sensitivityLabels = presentation.SensitivityLabels;
var targetLabelIdentifier = "{11111111-2222-3333-4444-555555555555}";

foreach (var sensitivityLabel in sensitivityLabels)
{
    var isTargetLabel = string.Equals(
        sensitivityLabel.Id,
        targetLabelIdentifier,
        StringComparison.OrdinalIgnoreCase);

    if (isTargetLabel)
    {
        sensitivityLabel.IsRemoved = true;
        break;
    }
}

presentation.Save("presentation_with_removed_label.pptx", SaveFormat.Pptx);

Legacy‑MIP‑Sensitivitätslabels lesen und migrieren

Ältere MIP‑basierte Arbeitsabläufe können Sensitivitätslabel‑Metadaten in benutzerdefinierten Dokumenteneigenschaften anstelle der modernen Label‑Sammlung speichern. Lesen Sie diese Metadaten mit IDocumentProperties.GetSensitivityLabels. Die Methode analysiert die Legacy‑Eigenschaften und gibt ein Array von ISensitivityLabel‑Objekten zurück.

Um die Metadaten zu migrieren, fügen Sie jedes zurückgegebene Label über ISensitivityLabelCollection.Add zur modernen ISensitivityLabelCollection hinzu. Da das Hinzufügen einer doppelten Label‑ID eine Ausnahme auslöst, prüft das Beispiel die Ziel‑Sammlung, bevor jedes Label kopiert wird. Sie können zusätzliche Validierungen hinzufügen, um zu bestätigen, dass jedes Legacy‑Label noch in der aktuellen Purview‑Richtlinie vorhanden ist.

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation_with_legacy_labels.pptx");
var legacySensitivityLabels = presentation.DocumentProperties.GetSensitivityLabels();
var modernSensitivityLabels = presentation.SensitivityLabels;

foreach (var legacySensitivityLabel in legacySensitivityLabels)
{
    var labelAlreadyExists = false;

    foreach (var modernSensitivityLabel in modernSensitivityLabels)
    {
        labelAlreadyExists = string.Equals(
            modernSensitivityLabel.Id,
            legacySensitivityLabel.Id,
            StringComparison.OrdinalIgnoreCase);

        if (labelAlreadyExists)
        {
            break;
        }
    }

    if (!labelAlreadyExists)
    {
        modernSensitivityLabels.Add(legacySensitivityLabel);
    }
}

presentation.Save("presentation_with_modern_labels.pptx", SaveFormat.Pptx);

Die Migration kopiert die analysierten Label‑Objekte in die moderne Sammlung. Es ist nicht erforderlich, alle benutzerdefinierten Dokumenteneigenschaften zu löschen, sodass nicht zugehörige Dokumenten‑Metadaten erhalten bleiben. Verwenden Sie IPresentation.Save mit SaveFormat.Pptx, um die modernen Label‑Metadaten in eine PPTX‑Datei zu schreiben.

FAQ

Erzeugt das Hinzufügen eines Inhaltskennzeichnungstyps einen sichtbaren Header, Footer oder Wasserzeichen auf Folien?

Nein. Durch ISensitivityLabel.ContentMarkTypes hinzugefügte Werte beschreiben die mit dem Sensitivitätslabel verbundenen Kennzeichnungen. Sie erzeugen keinen sichtbaren Text oder Formen in der Präsentation. Fügen Sie den entsprechenden Folieninhalt separat hinzu, wenn Ihr Arbeitsablauf diese Kennzeichnungen rendern muss.

Was ist der Unterschied zwischen dem Markieren eines Labels als entfernt und dem Löschen aus der Sammlung?

Das Setzen von ISensitivityLabel.IsRemoved auf true bewahrt den Label‑Eintrag und protokolliert dessen Entfernen‑Zustand. Der Aufruf von ISensitivityLabelCollection.RemoveAt löscht den Eintrag aus der modernen Sammlung. Wählen Sie die Operation, die den Metadaten‑Aufbewahrungsanforderungen Ihrer Organisation entspricht.

Kann eine Präsentation sowohl Legacy‑MIP‑Metadaten als auch moderne Sensitivitätslabels enthalten?

Ja. Legacy‑Labels können in benutzerdefinierten Dokumenteneigenschaften verbleiben, während moderne Labels über Presentation.SensitivityLabels verfügbar sind. Verwenden Sie IDocumentProperties.GetSensitivityLabels, um die Legacy‑Metadaten zu lesen und nur die gültigen Labels zu migrieren, die noch nicht in der modernen Sammlung vorhanden sind.

Was passiert, wenn ein Label mit derselben Kennung mehrmals hinzugefügt wird?

ISensitivityLabelCollection.Add wirft eine ArgumentException, wenn die Sammlung bereits ein Label mit derselben Kennung enthält. Überprüfen Sie die vorhandenen ISensitivityLabel.Id‑Werte, bevor Sie Labels hinzufügen oder migrieren.

Welches Ausgabformat sollte verwendet werden, um aktualisierte Sensitivitätslabels zu erhalten?

Speichern Sie die Präsentation als PPTX, indem Sie IPresentation.Save mit SaveFormat.Pptx aufrufen, wie in den obigen Beispielen gezeigt.