Démarrage rapide : Chiffrer/déchiffrer du texte à l’aide du SDK MIP (C#)
Ce démarrage rapide vous montre utiliser davantage de SDK MIP de protection. À l’aide de l’un des modèles de protection répertoriés dans le démarrage rapide précédent, vous utilisez un gestionnaire de protection pour chiffrer du texte ad hoc. La classe Gestionnaire de protection expose différentes opérations pour appliquer/supprimer la protection.
Prérequis
Si ce n’est déjà fait, veillez à satisfaire les prérequis suivants avant de poursuivre :
- Suivez d’abord le Démarrage rapide : Lister les modèles de protection (C#), qui créent une solution Visual Studio de démarrage, pour lister les modèles de protection disponibles pour les utilisateurs authentifiés. Ce démarrage rapide « Chiffrer/déchiffrer » est une build du précédent.
- Facultatif : passez en revue les Gestionnaires de protection dans les concepts du SDK MIP.
Ajouter une logique pour définir et obtenir un modèle de protection
Ajoutez une logique pour chiffrer du texte ad hoc, à l’aide de l’objet moteur Protection.
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.
Vers la fin du corps
Main()
(là où vous vous êtes arrêté dans le précédent Démarrage rapide), insérez le code suivant ://Set text to encrypt and template ID string inputText = "<Sample-text>"; string templateId = "<template-id>"; //Create a template based publishing descriptor ProtectionDescriptor protectionDescriptor = new ProtectionDescriptor(templateId); //Create publishing settings using protection descriptor PublishingSettings publishingSettings = new PublishingSettings(protectionDescriptor); //Generate Protection Handler for publishing var publishingHandler = Task.Run(async() => await protectionEngine.CreateProtectionHandlerForPublishingAsync(publishingSettings)).Result; //Encrypt text using Publishing handler long bufferSize = publishingHandler.GetProtectedContentLength(inputText.Length, true); byte[] inputTextBuffer = Encoding.ASCII.GetBytes(inputText); byte[] encryptedTextBuffer = new byte[bufferSize]; publishingHandler.EncryptBuffer(0, inputTextBuffer, encryptedTextBuffer, true); Console.WriteLine("Original text: {0}", inputText); Console.WriteLine("Encrypted text: {0}", Encoding.UTF8.GetString(encryptedTextBuffer)); //Create a Protection handler for consumption using the same publishing licence var serializedPublishingLicense = publishingHandler.GetSerializedPublishingLicense(); PublishingLicenseInfo plInfo = PublishingLicenseInfo.GetPublishingLicenseInfo(serializedPublishingLicense); ConsumptionSettings consumptionSettings = new ConsumptionSettings(plInfo); var consumptionHandler = protectionEngine.CreateProtectionHandlerForConsumption(consumptionSettings); //Use the handler to decrypt the encrypted text long buffersize = encryptedTextBuffer.Length; byte[] decryptedBuffer = new byte[bufferSize]; var bytesDecrypted = consumptionHandler.DecryptBuffer(0, encryptedTextBuffer, decryptedBuffer, true); byte[] OutputBuffer = new byte[bytesDecrypted]; for (int i = 0; i < bytesDecrypted; i++){ OutputBuffer[i] = decryptedBuffer[i]; } Console.WriteLine("Decrypted content: {0}", Encoding.UTF8.GetString(OutputBuffer)); Console.WriteLine("Press a key to quit."); Console.ReadKey();
Vers la fin de
Main()
, recherchez le bloc d’arrêt d’application créé dans le premier démarrage rapide et ajoutez les lignes de gestionnaire :// Application Shutdown publishingHandler = null; consumptionHandler = null; protectionEngine = null; protectionProfile = null; mipContext = null;
Remplacez les valeurs d’espace réservé dans le code source par les valeurs suivantes :
Paramètre substituable Valeur <sample-text> Exemple de texte que vous souhaitez chiffrer, par exemple : My secure text
.<template-id> ID de modèle, copié à partir de la sortie de la console dans le démarrage rapide précédent, par exemple : bb7ed207-046a-4caf-9826-647cff56b990
.
Concevoir et tester l’application
Générez et testez votre application cliente.
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.
Si votre projet est généré et exécuté correctement, l’application peut demander une authentification via ADAL 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é.
Original content: My secure text
Encrypted content: c?_hp???Q??+<?
Decrypted content: My secure text
Press a key to quit.