Kelola Label Sensitivitas dalam Presentasi PowerPoint di .NET
Ikhtisar
Microsoft Purview sensitivity labels membantu organisasi mengklasifikasikan dan mengelola dokumen. Selama pemrosesan presentasi otomatis, sebuah aplikasi mungkin perlu mempertahankan label yang ada, menerapkan label yang dipilih oleh kebijakan, memperbarui keadaannya, atau memigrasikan metadata label yang ditulis oleh alur kerja Microsoft Information Protection (MIP) yang lebih lama.
Aspose.Slides mengekspos metadata label sensitivitas modern melalui Presentation.SensitivityLabels. Properti ini mengembalikan sebuah ISensitivityLabelCollection yang dapat diperiksa dan dimodifikasi sebelum presentasi disimpan sebagai PPTX.
Catatan
Pengidentifikasi label sensitivitas dan informasi kebijakan ditentukan oleh konfigurasi Microsoft Purview Anda. Validasi ketersediaan label dan persyaratan kebijakan di lingkungan Anda sebelum menambahkan atau memigrasikan metadata. Nilai ISensitivityLabel.ContentMarkTypes menjelaskan penandaan konten yang terkait dengan label; nilai tersebut tidak secara otomatis menambahkan teks atau bentuk yang terlihat pada slide.Memahami Properti Label Sensitivitas
Setiap ISensitivityLabel berisi metadata berikut:
| Properti | Tujuan |
|---|---|
| ISensitivityLabel.Id | Mengidentifikasi label sensitivitas dalam kebijakan Purview. |
| ISensitivityLabel.SiteId | Mengidentifikasi situs yang terkait dengan kebijakan label. |
| ISensitivityLabel.IsEnabled | Menunjukkan apakah label diaktifkan. |
| ISensitivityLabel.IsRemoved | Menunjukkan bahwa label telah dihapus. Atur properti ini ke true bila status penghapusan harus dipertahankan dalam metadata. |
| ISensitivityLabel.AssignmentMethodType | Menentukan apakah label diterapkan secara otomatis atau melalui keputusan pengguna. |
| ISensitivityLabel.ContentMarkTypes | Mencantumkan jenis penandaan konten yang terkait dengan label. |
Enumerasi SensitivityLabelAssignmentType menjelaskan bagaimana sebuah label ditetapkan:
- SensitivityLabelAssignmentType.Standard mewakili label default atau yang diterapkan secara otomatis.
- SensitivityLabelAssignmentType.Privileged mewakili label yang diterapkan melalui keputusan pengguna, termasuk label yang diterapkan secara manual, direkomendasikan, dan wajib.
Enumerasi SensitivityLabelContentType mengidentifikasi penandaan yang terkait dengan sebuah label:
| Nilai | Makna |
|---|---|
| SensitivityLabelContentType.None | Label diterapkan secara default atau otomatis. |
| SensitivityLabelContentType.Header | Penandaan konten header terkait dengan label. |
| SensitivityLabelContentType.Footer | Penandaan konten footer terkait dengan label. |
| SensitivityLabelContentType.Watermark | Penandaan konten watermark terkait dengan label. |
| SensitivityLabelContentType.Encryption | Perlindungan enkripsi terkait dengan label. |
Beberapa jenis penandaan dapat terkait dengan satu label.
Daftar Label Sensitivitas yang Ada
Baca koleksi label modern dari Presentation.SensitivityLabels dan lakukan enumerasi. Contoh berikut mencantumkan setiap properti dan penandaan konten yang disimpan untuk masing-masing label:
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);
}
}
Menambahkan Label Sensitivitas dengan Penandaan Konten
Gunakan ISensitivityLabelCollection.Add dengan pengidentifikasi label, pengidentifikasi situs, status aktif, dan metode penetapan. Setelah metode mengembalikan ISensitivityLabel, tambahkan nilai penandaan yang diperlukan melalui ISensitivityLabel.ContentMarkTypes.
Contoh berikut menambahkan label yang dipilih secara manual dengan penandaan footer dan watermark, lalu menyimpan hasilnya sebagai 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);
Memperbarui Label Sensitivitas
Properti ISensitivityLabel dapat dibaca/ditulis, kecuali kumpulan yang dikembalikan oleh ISensitivityLabel.ContentMarkTypes yang dimodifikasi melalui operasi daftar. Setelah menemukan label yang diperlukan, Anda dapat memperbarui pengidentifikasinya, pengidentifikasi situs, status aktif, metode penetapan, status penghapusan, dan jenis penandaan konten. Simpan presentasi untuk menyimpan perubahan.
Contoh berikut memperbarui status aktif dan metode penetapan label pertama:
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);
Tandai Label Sensitivitas sebagai Dihapus
Untuk mempertahankan fakta bahwa sebuah label telah dihapus, temukan label tersebut dan atur ISensitivityLabel.IsRemoved ke true. Ini mempertahankan entri label sambil mencatat status penghapusannya. Jika Anda malah perlu menghapus entri dari koleksi modern, gunakan ISensitivityLabelCollection.RemoveAt; gunakan ISensitivityLabelCollection.Clear untuk menghapus semua entri.
Contoh berikut menandai label tertentu sebagai dihapus dan menyimpan presentasi yang telah diperbarui:
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);
Membaca dan Memigrasikan Label Sensitivitas MIP Legacy
Alur kerja berbasis MIP yang lebih lama dapat menyimpan metadata label sensitivitas dalam properti dokumen kustom alih-alih koleksi label modern. Baca metadata tersebut dengan IDocumentProperties.GetSensitivityLabels. Metode ini mengurai properti kustom legacy dan mengembalikan sebuah array objek ISensitivityLabel.
Untuk memigrasikan metadata, tambahkan setiap label yang dikembalikan ke ISensitivityLabelCollection modern melalui ISensitivityLabelCollection.Add. Karena menambahkan pengidentifikasi label duplikat akan memicu pengecualian, contoh memeriksa koleksi tujuan sebelum menyalin setiap label. Anda dapat menambahkan validasi lebih lanjut untuk memastikan setiap label legacy masih ada dalam kebijakan Purview saat ini.
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);
Migrasi menyalin objek label yang diurai ke dalam koleksi modern. Tidak diperlukan penghapusan semua properti dokumen kustom, sehingga metadata dokumen yang tidak terkait tetap utuh. Gunakan IPresentation.Save dengan SaveFormat.Pptx untuk menulis metadata label modern ke file PPTX.
FAQ
Apakah menambahkan jenis penandaan konten membuat header, footer, atau watermark yang terlihat pada slide?
Tidak. Nilai yang ditambahkan melalui ISensitivityLabel.ContentMarkTypes menggambarkan penandaan yang terkait dengan label sensitivitas. Nilai tersebut tidak membuat teks atau bentuk yang terlihat dalam presentasi. Tambahkan konten slide yang sesuai secara terpisah jika alur kerja Anda harus menampilkan penandaan tersebut.
Apa perbedaan antara menandai label sebagai dihapus dan menghapusnya dari koleksi?
Mengatur ISensitivityLabel.IsRemoved ke true mempertahankan entri label dan mencatat status penghapusannya. Memanggil ISensitivityLabelCollection.RemoveAt menghapus entri dari koleksi modern. Pilih operasi yang sesuai dengan persyaratan retensi metadata organisasi Anda.
Apakah sebuah presentasi dapat berisi metadata MIP legacy dan label sensitivitas modern sekaligus?
Ya. Label legacy dapat tetap berada di properti dokumen kustom sementara label modern tersedia melalui Presentation.SensitivityLabels. Gunakan IDocumentProperties.GetSensitivityLabels untuk membaca metadata legacy dan memigrasikan hanya label yang valid yang belum ada di dalam koleksi modern.
Apa yang terjadi ketika label dengan pengidentifikasi yang sama ditambahkan lebih dari sekali?
ISensitivityLabelCollection.Add melempar ArgumentException ketika koleksi sudah berisi label dengan pengidentifikasi yang sama. Periksa nilai ISensitivityLabel.Id yang ada sebelum menambahkan atau memigrasikan label.
Format output apa yang harus digunakan untuk mempertahankan label sensitivitas yang diperbarui?
Simpan presentasi sebagai PPTX dengan memanggil IPresentation.Save menggunakan SaveFormat.Pptx, seperti yang ditunjukkan pada contoh di atas.