Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Aperçu
Pour obtenir une vue d’ensemble de ce scénario et ses potentielles utilisations, reportez-vous à la republication dans MIP SDK.
Conditions préalables
Si ce n’est déjà fait, veillez à remplir les conditions préalables suivantes avant de continuer :
- Démarrage rapide complet : Définissez/obtenez d’abord des étiquettes de confidentialité (C#), qui créent une solution Visual Studio de démarrage, pour répertorier les étiquettes de confidentialité d’une organisation, pour définir et lire des étiquettes de confidentialité vers/à partir d’un fichier. Ce démarrage rapide « Comment republier un fichier protégé avec C# » s’appuie sur le précédent.
- Si vous le souhaitez , passez en revue les gestionnaires de fichiers dans les concepts du Kit de développement logiciel (SDK) MIP.
- Facultatif : passez en revue les Gestionnaires de protection dans les concepts du SDK MIP.
Ajouter une logique pour modifier et republier un fichier protégé
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#) ».
À l’aide de l’Explorateur de solutions, ouvrez le fichier .cs dans votre projet qui contient l’implémentation de la
Main()
méthode. Il a par défaut le même nom que le projet qui le contient, que vous avez spécifié lors de la création du projet.Vers la fin du corps
Main()
, en dessous deConsole.ReadKey()
et au-dessus du bloc d’arrêt de l’application (là où vous vous êtes arrêté dans le guide de démarrage rapide précédent), 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();
}
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;
Remplacez les valeurs de remplacement dans le code source en utilisant les valeurs suivantes :
Espace réservé Valeur <chemin-fichier-protégé> 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.
Utilisez ctrl-SHIFT-B (générer la solution) pour générer votre application cliente. Si vous n’avez aucune erreur de build, utilisez F5 (Démarrer le débogage) pour exécuter votre application.
Si votre projet génère et s’exécute correctement, l’application peut demander l’authentification à l’aide de la bibliothèque d’authentification Microsoft (MSAL) chaque fois que le Kit de développement logiciel (SDK) appelle votre
AcquireToken()
méthode. Si des informations d’identification mises en cache existent déjà, vous ne serez pas invité à vous connecter et à afficher 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.