Partager via


SDK Microsoft Information Protection - Démarrage rapide pour republier le SDK File (C#)

Vue d’ensemble

Pour une vue d’ensemble de ce scénario et de son utilisation, reportez-vous à Republication dans le SDK MIP.

Prérequis

Si ce n’est déjà fait, veillez à satisfaire les prérequis suivants avant de poursuivre :

Ajouter une logique pour modifier et republier un fichier protégé

  1. Ouvrez la solution Visual Studio que vous avez créée dans l’article précédent, « Démarrage rapide : Définir/obtenir des étiquettes de confidentialité (C#) ».

  2. Dans l’Explorateur de solutions, ouvrez le fichier .cs dans votre projet qui contient l’implémentation de la méthode Main(). Par défaut, il a le même nom que le projet qui le contient et que vous avez spécifié lors de la création du projet.

  3. Vers la fin du corps Main(), en dessous de Console.ReadKey() et au-dessus du bloc d’arrêt d’application (là où vous vous êtes arrêté dans le précédent démarrage rapide), insérez le code suivant.

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. Vers la fin de Main(), recherchez le bloc d’arrêt d’application créé dans le précédent démarrage rapide et ajoutez les lignes de gestionnaire ci-dessous pour libérer les ressources.

        protectedFileHandler = null;
        protectionHandler = null;
    
  2. Remplacez les valeurs d’espace réservé dans le code source par les valeurs suivantes :

    Paramètre substituable Valeur
    <protected-file-path> Fichier protégé du démarrage rapide précédent.
    <reprotected-file-path> Chemin du fichier de sortie pour republier le fichier modifié.

Concevoir et tester l’application

Générez et testez votre application cliente.

  1. Utilisez CTRL-MAJ-B (Créer une solution) pour créer votre application cliente. Si vous n’avez aucune erreur de build, utilisez F5 (Démarrer le débogage) pour exécuter votre application.

  2. Si votre projet est généré et exécuté correctement, l’application peut demander une authentification via Microsoft Authentication Library (MSAL) chaque fois que le kit de développement logiciel (SDK) appelle votre méthode AcquireToken(). Si des informations d’identification mises en cache existent déjà, vous n’êtes pas invité à vous connecter pour voir la liste des étiquettes, suivie des informations sur l’étiquette appliquée et le fichier modifié.

  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.