Microsoft Information Protection File SDK - Justifikasi Tindakan untuk menurunkan label sensitivitas pada file (C#)
Mulai cepat ini membahas penanganan operasi label downgrade saat kebijakan label memerlukan pembenaran. Di sini, kita akan menggunakan IFileHandler
antarmuka untuk mengubah label file. Untuk detail lebih lanjut, lihat referensi API.
Prasyarat
Jika Anda belum melakukannya, pastikan untuk menyelesaikan prasyarat berikut sebelum melanjutkan:
- Selesaikan Mulai Cepat: Mengatur/mendapatkan label sensitivitas (C#) yang membangun solusi Visual Studio pemula untuk mencantumkan label sensitivitas organisasi dan untuk mengatur dan membaca label sensitivitas ke/dari file. Mulai Cepat "Cara - Menurunkan/Menghapus label yang memerlukan pembenaran C#" ini dibangun pada yang sebelumnya.
- Secara opsional: Tinjau konsep penangan File dalam konsep MIP SDK.
Menambahkan logika untuk mengatur label yang lebih rendah ke file yang dilindungi
Tambahkan logika untuk mengatur label sensitivitas pada file, menggunakan objek Handler file.
Buka solusi Visual Studio yang Anda buat di "Mulai Cepat: Atur/dapatkan label sensitivitas (C#) sebelumnya.
Dengan menggunakan Penjelajah Solusi, buka file .cs dalam proyek Anda yang berisi implementasi
Main()
metode . Ini default ke nama yang sama dengan proyek yang berisinya, yang Anda tentukan selama pembuatan proyek.<label-id>
Perbarui nilai dari mulai cepat sebelumnya ke label sensitivitas yang memerlukan pembenaran untuk menurunkan. Selama mulai cepat ini berjalan, kita akan mengatur label ini terlebih dahulu dan kemudian mencoba menurunkannya melalui cuplikan kode dalam langkah-langkah lebih lanjut.Menjelang akhir
Main()
isi, di bawahConsole.ReadKey()
dan di atas blok matikan aplikasi (di mana Anda meninggalkan di Mulai Cepat sebelumnya), sisipkan kode berikut.//Set paths and label ID string lowerInput = actualOutputFilePath; string lowerActualInput = lowerInput; string newLabelId = "<new-label-id>"; string lowerOutput = "<downgraded-labled-output>"; string lowerActualOutput = lowerOutput; //Create a file handler for that file var downgradeHandler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(lowerInput, lowerActualInput, true)).Result; //Set Labeling Options LabelingOptions options = new LabelingOptions() { AssignmentMethod = AssignmentMethod.Standard }; try { //Try to set new label downgradeHandler.SetLabel(fileEngine.GetLabelById(newLabelId), options, new ProtectionSettings()); } catch (Microsoft.InformationProtection.Exceptions.JustificationRequiredException) { //Request justification from user Console.Write("Please provide justification for downgrading a label: "); string justification = Console.ReadLine(); options.IsDowngradeJustified = true; options.JustificationMessage = justification; //Set new label downgradeHandler.SetLabel(fileEngine.GetLabelById(newLabelId), options, new ProtectionSettings()); } // Commit changes, save as outputFilePath var downgradedResult = Task.Run(async () => await downgradeHandler.CommitAsync(lowerActualOutput)).Result; // Create a new handler to read the labeled file metadata var commitHandler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(lowerOutput, lowerActualOutput, true)).Result; // Get the label from output file var newContentLabel = commitHandler.Label; Console.WriteLine(string.Format("Getting the new label committed to file: {0}", lowerOutput)); Console.WriteLine(string.Format("File Label: {0} \r\nIsProtected: {1}", newContentLabel.Label.Name, newContentLabel.IsProtectionAppliedFromLabel.ToString())); Console.WriteLine("Press a key to continue."); Console.ReadKey();
Menjelang akhir Main() temukan blok matikan aplikasi yang dibuat di mulai cepat sebelumnya dan tambahkan baris handler di bawah ini untuk merilis sumber daya.
downgradeHandler = null; commitHandler = null;
Ganti nilai tempat penampung dalam kode sumber menggunakan nilai berikut:
Placeholder Nilai <downgraded-labled-output> Jalur file output yang ingin Anda simpan file yang dimodifikasi. <new-label-id> ID templat, yang disalin dari output konsol di Mulai Cepat sebelumnya, misalnya: bb7ed207-046a-4caf-9826-647cff56b990
. Pastikan memiliki sensitivitas yang lebih rendah daripada label file yang dilindungi sebelumnya.
Membangun dan menguji aplikasi
Buat dan uji aplikasi klien Anda.
Gunakan CTRL-SHIFT-B (Build Solution) untuk membangun aplikasi klien Anda. Jika Anda tidak memiliki kesalahan build, gunakan F5 (Mulai penelusuran kesalahan) untuk menjalankan aplikasi Anda.
Jika proyek Anda berhasil dibangun dan berjalan, aplikasi dapat meminta autentikasi menggunakan Microsoft Authentication Library (MSAL) setiap kali SDK memanggil metode Anda
AcquireToken()
. Jika kredensial yang di-cache sudah ada, Anda tidak akan diminta untuk masuk dan melihat daftar label, diikuti dengan informasi tentang label yang diterapkan dan file yang dimodifikasi.
Personal : 73c47c6a-eb00-4a6a-8e19-efaada66dee6
Public : 73254501-3d5b-4426-979a-657881dfcb1e
General : da480625-e536-430a-9a9e-028d16a29c59
Confidential : 569af77e-61ea-4deb-b7e6-79dc73653959
Highly Confidential : 905845d6-b548-439c-9ce5-73b2e06be157
Press a key to continue.
Getting the label committed to file: c:\Test\Test_labeled.docx
Name: Confidential
IsProtected: True
Press any key to continue . . .
Please provide justification for downgrading a label: Lower label approved.
Getting the new label committed to file: c:\Test\Test_downgraded.docx
File Label: General
IsProtected: False
Press a key to continue.
Harap dicatat, pendekatan serupa juga berlaku untuk DeleteLabel()
operasi, jika label dihapus dari file memerlukan pembenaran sesuai kebijakan label.DeleteLabel()
fungsi melempar JustificationRequiredException
pengecualian dan IsDowngradeJustified
bendera harus diatur ke true dalam penanganan pengecualian sebelum menghapus label berhasil.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk