Dela via


Microsoft Information Protection SDK – Snabbstart för ompublicering av fil-SDK (C#)

Översikt

En översikt över det här scenariot och var det kan användas finns i Publicera om i MIP SDK.

Förutsättningar

Om du inte redan har gjort det måste du slutföra följande krav innan du fortsätter:

  • Slutför snabbstart: Ange/hämta känslighetsetiketter (C#) först, som skapar en startlösning för Visual Studio, för att lista en organisations känslighetsetiketter, för att ange och läsa känslighetsetiketter till/från en fil. Den här snabbstarten "How to – Republish a protected file - C#" bygger på den tidigare.
  • Alternativt: Granska filhanterare i MIP SDK-begreppen.
  • Alternativt: Granska skyddshanterare i MIP SDK-begreppen.

Lägga till logik för att redigera och publicera om en skyddad fil

  1. Öppna Visual Studio-lösningen som du skapade i föregående artikel "Snabbstart: Ange/hämta känslighetsetiketter(C#)."

  2. Använd Solution Explorer och öppna .cs-filen i projektet som innehåller implementeringen av Main() metoden. Det är som standard samma namn som det projekt som innehåller det, som du angav när projektet skapades.

  3. Mot slutet av brödtexten Main() , nedanför Console.ReadKey() och ovanför block för programavstängning (där du slutade i föregående snabbstart), infogar du följande kod.

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. Mot slutet av Main() hittar du det block för programavstängning som skapades i föregående snabbstart och lägger till nedanstående hanteringsrader för att frigöra resurser.

        protectedFileHandler = null;
        protectionHandler = null;
    
  2. Ersätt platshållarvärdena i källkoden med hjälp av följande värden:

    Platshållare Värde
    <protected-file-path> Skyddad fil från föregående snabbstart.
    <reprotected-file-path> Sökvägen till utdatafilen för den ändrade filen som ska publiceras på nytt.

Skapa och testa programmet

Skapa och testa klientprogrammet.

  1. Använd CTRL-SHIFT-B (Build Solution) för att skapa klientprogrammet. Om du inte har några byggfel använder du F5 (Starta felsökning) för att köra programmet.

  2. Om projektet byggs och körs korrekt kan programmet fråga efter autentisering med hjälp av Microsoft Authentication Library (MSAL) varje gång SDK:t anropar din AcquireToken() metod. Om cachelagrade autentiseringsuppgifter redan finns uppmanas du inte att logga in och se listan med etiketter, följt av informationen på den tillämpade etiketten och den ändrade filen.

  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.