Hantera känslighetsetiketter i PowerPoint-presentationer i .NET

Översikt

Microsoft Purview‑känslighetsetiketter hjälper organisationer att klassificera och hantera dokument. Under automatiserad bearbetning av presentationer kan en applikation behöva bevara en befintlig etikett, tillämpa en etikett vald av en policy, uppdatera dess status eller migrera etikettmetadata som skrivits av ett äldre Microsoft Information Protection (MIP)‑arbetsflöde.

Aspose.Slides exponerar modern metadata för känslighetsetiketter via Presentation.SensitivityLabels. Denna egenskap returnerar en ISensitivityLabelCollection som kan inspekteras och modifieras innan presentationen sparas som PPTX.

Förstå egenskaper för känslighetsetiketter

Varje ISensitivityLabel innehåller följande metadata:

Egenskap Syfte
ISensitivityLabel.Id Identifierar känslighetsetiketten i Purview‑policyn.
ISensitivityLabel.SiteId Identifierar webbplatsen som är associerad med etikettpolicyn.
ISensitivityLabel.IsEnabled Anger om etiketten är aktiverad.
ISensitivityLabel.IsRemoved Anger att etiketten har tagits bort. Sätt denna egenskap till true när borttagningsstatusen måste bevaras i metadata.
ISensitivityLabel.AssignmentMethodType Specificerar om etiketten tillämpades automatiskt eller genom ett användarbeslut.
ISensitivityLabel.ContentMarkTypes Listar de innehållsmarkeringstyper som är associerade med etiketten.

Uppräkningen SensitivityLabelAssignmentType beskriver hur en etikett tilldelades:

Uppräkningen SensitivityLabelContentType identifierar den markering som är associerad med en etikett:

Värde Betydelse
SensitivityLabelContentType.None Etiketten tillämpades som standard eller automatiskt.
SensitivityLabelContentType.Header Innehållsmarkering för rubrik är associerad med etiketten.
SensitivityLabelContentType.Footer Innehållsmarkering för sidfot är associerad med etiketten.
SensitivityLabelContentType.Watermark Innehållsmarkering för vattenstämpel är associerad med etiketten.
SensitivityLabelContentType.Encryption Krypteringsskydd är associerat med etiketten.

Flera markeringstyper kan vara associerade med en etikett.

Lista befintliga känslighetsetiketter

Läs den moderna etikettkollektionen från Presentation.SensitivityLabels och iterera över den. Följande exempel listar varje egenskap och innehållsmarkering som lagrats för varje etikett:

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

Lägg till en känslighetsetikett med innehållsmarkering

Använd ISensitivityLabelCollection.Add med etikettidentifieraren, webbplatsidentifieraren, aktiveringsstatusen och tilldelningsmetoden. När metoden returnerar den nya ISensitivityLabel, lägg till de erforderliga markeringsvärdena via ISensitivityLabel.ContentMarkTypes.

Följande exempel lägger till en manuellt vald etikett som är associerad med sidfot‑ och vattenstämpel‑markeringar, och sparar sedan resultatet som 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);

Uppdatera en känslighetsetikett

Egenskaperna i ISensitivityLabel är läs/skriv, förutom att samlingen som returneras av ISensitivityLabel.ContentMarkTypes modifieras via dess listoperationer. Efter att ha hittat den önskade etiketten kan du uppdatera dess identifierare, webbplatsidentifierare, aktiveringsstatus, tilldelningsmetod, borttagningsstatus och innehållsmarkeringstyper. Spara presentationen för att bestå förändringarna.

Följande exempel uppdaterar aktiveringsstatusen och tilldelningsmetoden för den första etiketten:

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

Markera en känslighetsetikett som borttagen

För att bevara att en etikett har tagits bort, hitta etiketten och sätt ISensitivityLabel.IsRemoved till true. Detta behåller etikettposten samtidigt som dess borttagningsstatus registreras. Om du istället behöver radera en post från den moderna kollektionen, använd ISensitivityLabelCollection.RemoveAt; använd ISensitivityLabelCollection.Clear för att radera alla poster.

Följande exempel markerar en specifik etikett som borttagen och sparar den uppdaterade presentationen:

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

Läs och migrera äldre MIP‑känslighetsetiketter

Äldre MIP‑baserade arbetsflöden kan lagra metadata för känslighetsetiketter i anpassade dokumentegenskaper istället för i den moderna etikettkollektionen. Läs den metadata med IDocumentProperties.GetSensitivityLabels. Metoden analyserar de äldre anpassade egenskaperna och returnerar en array av ISensitivityLabel‑objekt.

För att migrera metadata, lägg till varje returnerad etikett i den moderna ISensitivityLabelCollection via ISensitivityLabelCollection.Add. Eftersom ett duplicerat etikettidentifierare orsakar ett undantag, kontrollerar exemplet målkoletionen innan varje etikett kopieras. Du kan lägga till ytterligare validering för att bekräfta att varje äldre etikett fortfarande finns i den aktuella Purview‑policyn.

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

Migreringen kopierar de analyserade etikettobjekten till den moderna kollektionen. Det krävs inte att alla anpassade dokumentegenskaper rensas, så orelaterad dokumentmetadata förblir intakt. Använd IPresentation.Save med SaveFormat.Pptx för att skriva den moderna etikettmetadata till en PPTX‑fil.

FAQ

Skapar tillägg av en innehållsmarkeringstyp en synlig rubrik, sidfot eller vattenstämpel på bilderna?

Nej. Värden som läggs till via ISensitivityLabel.ContentMarkTypes beskriver de markeringar som är associerade med känslighetsetiketten. De skapar inte synlig text eller former i presentationen. Lägg till motsvarande bildinnehåll separat om ditt arbetsflöde måste rendera dessa markeringar.

Vad är skillnaden mellan att markera en etikett som borttagen och att radera den från samlingen?

Att sätta ISensitivityLabel.IsRemoved till true behåller etikettposten och registrerar dess borttagningsstatus. Att anropa ISensitivityLabelCollection.RemoveAt raderar posten från den moderna samlingen. Välj den operation som matchar din organisations krav på metadata‑behållning.

Kan en presentation innehålla både äldre MIP‑metadata och moderna känslighetsetiketter?

Ja. Äldre etiketter kan finnas kvar i anpassade dokumentegenskaper medan moderna etiketter är tillgängliga via Presentation.SensitivityLabels. Använd IDocumentProperties.GetSensitivityLabels för att läsa den äldre metadata och migrera endast de giltiga etiketter som inte redan finns i den moderna samlingen.

Vad händer när en etikett med samma identifierare läggs till fler än en gång?

ISensitivityLabelCollection.Add kastar ett ArgumentException när samlingen redan innehåller en etikett med samma identifierare. Kontrollera befintliga ISensitivityLabel.Id‑värden innan du lägger till eller migrerar etiketter.

Vilket output‑format bör användas för att bevara uppdaterade känslighetsetiketter?

Spara presentationen som PPTX genom att anropa IPresentation.Save med SaveFormat.Pptx, som visas i exemplen ovan.