Bagikan melalui


Microsoft Information Protection SDK - Mulai Cepat Penerbitan Ulang SDK File (C#)

Gambaran Umum

Untuk gambaran umum tentang skenario ini dan di mana skenario tersebut dapat digunakan, lihat Menerbitkan ulang di MIP SDK.

Prasyarat

Jika Anda belum melakukannya, pastikan untuk menyelesaikan prasyarat berikut sebelum melanjutkan:

  • Selesaikan Mulai Cepat: Atur/dapatkan label sensitivitas (C#) terlebih dahulu, yang membangun solusi Visual Studio pemula, untuk mencantumkan label sensitivitas organisasi, untuk mengatur dan membaca label sensitivitas ke/dari file. Mulai Cepat "Cara - Menerbitkan ulang file yang dilindungi - C#" ini dibangun di yang sebelumnya.
  • Secara opsional: Tinjau Penangan file dalam konsep MIP SDK.
  • Secara opsional: Tinjau Penangan perlindungan dalam konsep MIP SDK.

Menambahkan logika untuk mengedit dan menerbitkan ulang file yang dilindungi

  1. Buka solusi Visual Studio yang Anda buat di artikel "Mulai Cepat: Atur/dapatkan label sensitivitas (C#)" sebelumnya.

  2. 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.

  3. Menjelang akhir Main() isi, di bawah Console.ReadKey() dan di atas blok matikan aplikasi (di mana Anda meninggalkan di Mulai Cepat sebelumnya), sisipkan kode berikut.

string protectedFilePath = "<protected-file-path>" // Originally protected file's path from previous quickstart.

//Create a fileHandler for consumption for the Protected File.
var protectedFileHandler = Task.Run(async () => 
                            await fileEngine.CreateFileHandlerAsync(protectedFilePath,// inputFilePath
                                                                    protectedFilePath,// actualFilePath
                                                                    false, //isAuditDiscoveryEnabled
                                                                    null)).Result; // fileExecutionState

// Store protection handler from file
var protectionHandler = protectedFileHandler.Protection;

//Check if the user has the 'Edit' right to the file
if (protectionHandler.AccessCheck("Edit"))
{
    // Decrypt file to temp path
    var tempPath = Task.Run(async () => await protectedFileHandler.GetDecryptedTemporaryFileAsync()).Result;

    /*
        Your own application code to edit the decrypted file belongs here. 
    */

    /// Follow steps below for re-protecting the edited file. ///
    // Create a new file handler using the temporary file path.
    var republishHandler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(tempPath, tempPath, false)).Result;

    // Set protection using the ProtectionHandler from the original consumption operation.
    republishHandler.SetProtection(protectionHandler);

    // New file path to save the edited file
    string reprotectedFilePath = "<reprotected-file-path>" // New file path for saving reprotected file.

    // Write changes
    var reprotectedResult = Task.Run(async () => await republishHandler.CommitAsync(reprotectedFilePath)).Result;

    var protectedLabel = protectedFileHandler.Label;
    Console.WriteLine(string.Format("Originally protected file: {0}", protectedFilePath));
    Console.WriteLine(string.Format("File LabelID: {0} \r\nProtectionOwner: {1} \r\nIsProtected: {2}", 
                        protectedLabel.Label.Id, 
                        protectedFileHandler.Protection.Owner, 
                        protectedLabel.IsProtectionAppliedFromLabel.ToString()));
    var reprotectedLabel = republishHandler.Label;
    Console.WriteLine(string.Format("Reprotected file: {0}", reprotectedFilePath));
    Console.WriteLine(string.Format("File LabelID: {0} \r\nProtectionOwner: {1} \r\nIsProtected: {2}", 
                        reprotectedLabel.Label.Id, 
                        republishHandler.Protection.Owner, 
                        reprotectedLabel.IsProtectionAppliedFromLabel.ToString()));
    Console.WriteLine("Press a key to continue.");
    Console.ReadKey();
}
  1. Menjelang akhir Main() temukan blok matikan aplikasi yang dibuat di mulai cepat sebelumnya dan tambahkan baris handler di bawah ini untuk merilis sumber daya.

        protectedFileHandler = null;
        protectionHandler = null;
    
  2. Ganti nilai tempat penampung dalam kode sumber menggunakan nilai berikut:

    Placeholder Nilai
    <protected-file-path> File yang dilindungi dari mulai cepat sebelumnya.
    <jalur file terlindungi ulang> Jalur file output untuk file yang dimodifikasi untuk diterbitkan ulang.

Membangun dan menguji aplikasi

Buat dan uji aplikasi klien Anda.

  1. 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.

  2. 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_protected.docx
  File Label: Confidential
  IsProtected: True
  Press a key to continue.
  Originally protected file: C:\Test\Test_protected.docx
  File LabelID: 569af77e-61ea-4deb-b7e6-79dc73653959
  ProtectionOwner: User1@Contoso.OnMicrosoft.com
  IsProtected: True
  Reprotected file: C:\Test\Test_reprotected.docx
  File LabelID: 569af77e-61ea-4deb-b7e6-79dc73653959
  ProtectionOwner: User1@Contoso.OnMicrosoft.com
  IsProtected: True
  Press a key to continue.