Zarządzaj etykietami wrażliwości w prezentacjach PowerPoint w .NET

Przegląd

Etykiety wrażliwości Microsoft Purview pomagają organizacjom klasyfikować i zarządzać dokumentami. Podczas automatycznego przetwarzania prezentacji aplikacja może potrzebować zachować istniejącą etykietę, zastosować etykietę wybraną przez zasadę, zaktualizować jej stan lub migrować metadane etykiety zapisane przez starszy przepływ pracy Microsoft Information Protection (MIP).

Aspose.Slides udostępnia nowoczesne metadane etykiet wrażliwości poprzez Presentation.SensitivityLabels. Ta właściwość zwraca ISensitivityLabelCollection, którą można przeglądać i modyfikować przed zapisaniem prezentacji jako PPTX.

Zrozumienie własności etykiety wrażliwości

Każdy ISensitivityLabel zawiera następujące metadane:

Właściwość Cel
ISensitivityLabel.Id Identyfikuje etykietę wrażliwości w polityce Purview.
ISensitivityLabel.SiteId Identyfikuje witrynę powiązaną z polityką etykiety.
ISensitivityLabel.IsEnabled Określa, czy etykieta jest włączona.
ISensitivityLabel.IsRemoved Wskazuje, że etykieta została usunięta. Ustaw tę właściwość na true, aby stan usunięcia był zachowany w metadanych.
ISensitivityLabel.AssignmentMethodType Określa, czy etykieta została zastosowana automatycznie, czy na podstawie decyzji użytkownika.
ISensitivityLabel.ContentMarkTypes Zawiera listę typów oznaczeń treści powiązanych z etykietą.

Wyliczenie SensitivityLabelAssignmentType opisuje, w jaki sposób etykieta została przypisana:

Wyliczenie SensitivityLabelContentType identyfikuje oznaczenie powiązane z etykietą:

Wartość Znaczenie
SensitivityLabelContentType.None Etykieta została zastosowana domyślnie lub automatycznie.
SensitivityLabelContentType.Header Z nagłówkiem powiązane jest oznaczenie treści.
SensitivityLabelContentType.Footer Z stopką powiązane jest oznaczenie treści.
SensitivityLabelContentType.Watermark Z znakiem wodnym powiązane jest oznaczenie treści.
SensitivityLabelContentType.Encryption Z ochroną szyfrowania powiązane jest oznaczenie treści.

Jednej etykiecie może być przypisanych wiele typów oznaczeń.

Wyświetlanie istniejących etykiet wrażliwości

Odczytaj nowoczesną kolekcję etykiet z Presentation.SensitivityLabels i przeiteruj ją. Poniższy przykład wypisuje każdą właściwość i oznaczenie treści przechowywane dla każdej etykiety:

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);
    }
}

Dodanie etykiety wrażliwości z oznaczeniem treści

Użyj ISensitivityLabelCollection.Add podając identyfikator etykiety, identyfikator witryny, stan włączenia oraz metodę przypisania. Po zwróceniu nowego ISensitivityLabel dodaj wymagane wartości oznaczeń poprzez ISensitivityLabel.ContentMarkTypes.

Poniższy przykład dodaje ręcznie wybraną etykietę powiązaną z oznaczeniami stopki i znaku wodnego, a następnie zapisuje wynik jako 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);

Aktualizacja etykiety wrażliwości

Właściwości ISensitivityLabel są odczytywalne i zapisywalne, z wyjątkiem kolekcji zwracanej przez ISensitivityLabel.ContentMarkTypes, którą modyfikuje się przy użyciu operacji na liście. Po znalezieniu wymaganej etykiety możesz zaktualizować jej identyfikator, identyfikator witryny, stan włączenia, metodę przypisania, stan usunięcia oraz typy oznaczeń treści. Zapisz prezentację, aby zachować zmiany.

Poniższy przykład aktualizuje stan włączenia i metodę przypisania pierwszej etykiety:

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);

Oznaczenie etykiety wrażliwości jako usuniętej

Aby zachować informację, że etykieta została usunięta, znajdź ją i ustaw ISensitivityLabel.IsRemoved na true. To zachowuje wpis etykiety, rejestrując jej stan usunięcia. Jeśli zamiast tego potrzebujesz usunąć wpis z nowoczesnej kolekcji, użyj ISensitivityLabelCollection.RemoveAt; aby usunąć wszystkie wpisy, użyj ISensitivityLabelCollection.Clear.

Poniższy przykład oznacza konkretną etykietę jako usuniętą i zapisuje zaktualizowaną prezentację:

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);

Odczyt i migracja starszych etykiet MIP

Starsze przepływy oparte na MIP mogą przechowywać metadane etykiet wrażliwości w niestandardowych własnościach dokumentu zamiast w nowoczesnej kolekcji etykiet. Odczytaj te metadane za pomocą IDocumentProperties.GetSensitivityLabels. Metoda analizuje starsze własności niestandardowe i zwraca tablicę obiektów ISensitivityLabel.

Aby migrować metadane, dodaj każdą zwróconą etykietę do nowoczesnej ISensitivityLabelCollection przy użyciu ISensitivityLabelCollection.Add. Ponieważ dodanie etykiety o tym samym identyfikatorze wywołuje wyjątek, przykład najpierw sprawdza docelową kolekcję przed skopiowaniem każdej etykiety. Możesz dodać dodatkową walidację, aby potwierdzić, że każda starsza etykieta nadal istnieje w bieżącej polityce Purview.

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);

Migracja kopiuje przetworzone obiekty etykiet do nowoczesnej kolekcji. Nie wymaga czyszczenia wszystkich własności niestandardowych dokumentu, więc niezwiązane metadane pozostają nienaruszone. Użyj IPresentation.Save z SaveFormat.Pptx aby zapisać nowoczesne metadane etykiet do pliku PPTX.

FAQ

Czy dodanie typu oznaczenia treści tworzy widoczny nagłówek, stopkę lub znak wodny na slajdach?

Nie. Wartości dodane poprzez ISensitivityLabel.ContentMarkTypes opisują oznaczenia powiązane z etykietą wrażliwości. Nie tworzą widocznego tekstu ani kształtów w prezentacji. Dodaj odpowiednią treść slajdów osobno, jeśli Twój przepływ wymaga renderowania tych oznaczeń.

Jaka jest różnica między oznaczeniem etykiety jako usuniętej a jej usunięciem z kolekcji?

Ustawienie ISensitivityLabel.IsRemoved na true zachowuje wpis etykiety i rejestruje jej stan usunięcia. Wywołanie ISensitivityLabelCollection.RemoveAt usuwa wpis z nowoczesnej kolekcji. Wybierz operację zgodną z wymaganiami organizacji dotyczącymi retencji metadanych.

Czy prezentacja może zawierać zarówno starsze metadane MIP, jak i nowoczesne etykiety wrażliwości?

Tak. Starsze etykiety mogą pozostać w niestandardowych własnościach dokumentu, podczas gdy nowoczesne etykiety są dostępne przez Presentation.SensitivityLabels. Użyj IDocumentProperties.GetSensitivityLabels aby odczytać starsze metadane i migrować tylko te etykiety, które nie są już obecne w nowoczesnej kolekcji.

Co się dzieje, gdy etykieta o tym samym identyfikatorze zostanie dodana wielokrotnie?

ISensitivityLabelCollection.Add zgłasza ArgumentException, gdy kolekcja już zawiera etykietę o tym samym identyfikatorze. Sprawdź istniejące wartości ISensitivityLabel.Id przed dodaniem lub migracją etykiet.

Jaki format wyjściowy należy użyć, aby zachować zaktualizowane etykiety wrażliwości?

Zapisz prezentację jako PPTX, wywołując IPresentation.Save z SaveFormat.Pptx, jak pokazano w powyższych przykładach.