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.
Note
Identyfikatory etykiet wrażliwości i informacje o zasadach są definiowane w konfiguracji Microsoft Purview. Zweryfikuj dostępność etykiet oraz wymagania zasad w swojej środowisku przed dodaniem lub migracją metadanych. Wartości ISensitivityLabel.ContentMarkTypes opisują oznaczenia treści powiązane z etykietą; same w sobie nie dodają widocznego tekstu ani kształtów do slajdów.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:
- SensitivityLabelAssignmentType.Standard oznacza domyślną lub automatycznie zastosowaną etykietę.
- SensitivityLabelAssignmentType.Privileged oznacza etykietę zastosowaną w wyniku decyzji użytkownika, w tym etykiety stosowane ręcznie, zalecane i obowiązkowe.
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.