Správa citlivostních štítků v PowerPoint prezentacích v .NET

Přehled

Microsoft Purview citlivostní štítky pomáhají organizacím klasifikovat a spravovat dokumenty. Během automatizovaného zpracování prezentací může aplikace potřebovat zachovat existující štítek, použít štítek vybraný politikou, aktualizovat jeho stav nebo migrovat metadata štítku zapsaná starším pracovním postupem Microsoft Information Protection (MIP).

Aspose.Slides zpřístupňuje moderní metadata citlivostních štítků prostřednictvím Presentation.SensitivityLabels. Toto vlastnost vrací ISensitivityLabelCollection, kterou lze prozkoumat a upravit před uložením prezentace jako PPTX.

Porozumění vlastnostem citlivostního štítku

Každý ISensitivityLabel obsahuje následující metadata:

Vlastnost Účel
ISensitivityLabel.Id Identifikuje citlivostní štítek v politice Purview.
ISensitivityLabel.SiteId Identifikuje lokalitu spojenou s politikou štítku.
ISensitivityLabel.IsEnabled Udává, zda je štítek povolen.
ISensitivityLabel.IsRemoved Indikuje, že byl štítek odebrán. Nastavte tuto vlastnost na true, když je třeba zachovat stav odebrání v metadatech.
ISensitivityLabel.AssignmentMethodType Určuje, zda byl štítek aplikován automaticky nebo na základě rozhodnutí uživatele.
ISensitivityLabel.ContentMarkTypes Uvádí typy označení obsahu spojené se štítkem.

Výčtový typ SensitivityLabelAssignmentType popisuje, jak byl štítek přiřazen:

Výčtový typ SensitivityLabelContentType určuje označení spojené se štítkem:

Hodnota Význam
SensitivityLabelContentType.None Štítek byl aplikován výchozí nebo automaticky.
SensitivityLabelContentType.Header Označení obsahu záhlaví je spojeno se štítkem.
SensitivityLabelContentType.Footer Označení obsahu zápatí je spojeno se štítkem.
SensitivityLabelContentType.Watermark Označení obsahu vodoznaku je spojeno se štítkem.
SensitivityLabelContentType.Encryption Šifrovací ochrana je spojena se štítkem.

Více typů označení může být spojeno s jedním štítkem.

Vypsání existujících citlivostních štítků

Načtěte moderní kolekci štítků z Presentation.SensitivityLabels a enumerujte ji. Následující příklad uvádí všechny vlastnosti a označení obsahu uložené pro každý štítek:

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

Přidání citlivostního štítku s označením obsahu

Použijte ISensitivityLabelCollection.Add s identifikátorem štítku, identifikátorem lokality, stavem povolení a metodou přiřazení. Po vrácení nového ISensitivityLabel, přidejte požadované hodnoty označení prostřednictvím ISensitivityLabel.ContentMarkTypes.

Následující příklad přidá ručně vybraný štítek spojený se značením zápatí a vodoznaku a poté uloží výsledek 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);

Aktualizace citlivostního štítku

Vlastnosti ISensitivityLabel jsou čtení/zápis, kromě toho, že kolekce vrácená ISensitivityLabel.ContentMarkTypes se upravuje pomocí operací seznamu. Po nalezení požadovaného štítku můžete aktualizovat jeho identifikátor, identifikátor lokality, stav povolení, metodu přiřazení, stav odebrání a typy označení obsahu. Uložte prezentaci pro zachování změn.

Následující příklad aktualizuje stav povolení a metodu přiřazení prvního štítku:

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

Označení citlivostního štítku jako odebraný

Pro zachování informace, že byl štítek odebrán, najděte štítek a nastavte ISensitivityLabel.IsRemoved na true. Tím se zachová položka štítku a zaznamená jeho stav odebrání. Pokud místo toho potřebujete položku z moderní kolekce smazat, použijte ISensitivityLabelCollection.RemoveAt; použijte ISensitivityLabelCollection.Clear pro smazání všech položek.

Následující příklad označí konkrétní štítek jako odebraný a uloží aktualizovanou prezentaci:

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

Čtení a migrace starších MIP citlivostních štítků

Starší pracovní postupy založené na MIP mohou ukládat metadata citlivostních štítků do vlastních vlastností dokumentu místo moderní kolekce štítků. Přečtěte tato metadata pomocí IDocumentProperties.GetSensitivityLabels. Metoda analyzuje staré vlastní vlastnosti a vrací pole objektů ISensitivityLabel.

Pro migraci metadat přidejte každý vrácený štítek do moderní ISensitivityLabelCollection pomocí ISensitivityLabelCollection.Add. Protože přidání duplicitního identifikátoru štítku vyvolá výjimku, příklad kontroluje cílovou kolekci před zkopírováním každého štítku. Můžete přidat další ověření, aby se potvrdilo, že každý starý štítek stále existuje v aktuální politice 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);

Migrace zkopíruje analyzované objekty štítků do moderní kolekce. Nevyžaduje vymazání všech vlastních vlastností dokumentu, takže nesouvisející metadata dokumentu zůstávají nedotčena. Použijte IPresentation.Save s SaveFormat.Pptx k zápisu moderních metadat štítků do souboru PPTX.

FAQ

Vytváří přidání typu označení obsahu viditelné záhlaví, zápatí nebo vodoznak na snímcích?

Ne. Hodnoty přidané přes ISensitivityLabel.ContentMarkTypes popisují označení spojená s citlivostním štítkem. Nevytvářejí v prezentaci viditelný text ani tvary. Pokud váš pracovní postup musí tyto označení vykreslit, přidejte odpovídající obsah snímků samostatně.

Jaký je rozdíl mezi označením štítku jako odebraného a jeho smazáním ze sbírky?

Nastavení ISensitivityLabel.IsRemoved na true zachová položku štítku a zaznamená jeho stav odebrání. Volání ISensitivityLabelCollection.RemoveAt smaže položku z moderní sbírky. Vyberte operaci, která odpovídá požadavkům vaší organizace na uchování metadat.

Může prezentace obsahovat jak stará MIP metadata, tak moderní citlivostní štítky?

Ano. Staré štítky mohou zůstat ve vlastních vlastnostech dokumentu, zatímco moderní štítky jsou dostupné přes Presentation.SensitivityLabels. Použijte IDocumentProperties.GetSensitivityLabels k načtení starých metadat a migrujte pouze platné štítky, které již nejsou v moderní kolekci.

Co se stane, když je štítek se stejným identifikátorem přidán vícekrát?

ISensitivityLabelCollection.Add vyvolá ArgumentException, pokud sbírka již obsahuje štítek se stejným identifikátorem. Před přidáním nebo migrací štítků zkontrolujte existující hodnoty ISensitivityLabel.Id.

Jaký výstupní formát by měl být použit k zachování aktualizovaných citlivostních štítků?

Uložte prezentaci jako PPTX voláním IPresentation.Save s SaveFormat.Pptx, jak ukazují výše uvedené příklady.