Freigeben über


Microsoft Information Protection SDK: Schnellstart: Erneutes Veröffentlichen mit dem File SDK (C#)

Überblick

Eine Übersicht zu diesem Szenario und wo sie verwendet werden kann, finden Sie unter "Erneutes Veröffentlichen" im MIP SDK.

Voraussetzungen

Falls noch nicht geschehen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen, bevor Sie fortfahren:

  • Vollständige Schnellstartanleitung: Zuerst Vertraulichkeitsbezeichnungen (C#) festlegen/abrufen , die eine Startlösung von Visual Studio erstellt, um die Vertraulichkeitsbezeichnungen einer Organisation auflisten zu können, um Vertraulichkeitsbezeichnungen in/aus einer Datei festzulegen und zu lesen. Diese Schnellstartanleitung "How to - Ein geschütztes Dokument erneut veröffentlichen - C#" baut auf der vorherigen auf.
  • Optional: Überprüfen von Dateihandlern in den MIP SDK-Konzepten.
  • Optional: Überprüfen von Schutzhandlern in den MIP SDK-Konzepten.

Hinzufügen einer Logik zum Bearbeiten und Erneuten Veröffentlichen einer geschützten Datei

  1. Öffnen Sie die Visual Studio-Lösung, die Sie im vorherigen Artikel "Schnellstart: Festlegen/Abrufen von Vertraulichkeitsbezeichnungen(C#)" erstellt haben.

  2. Öffnen Sie im Projektmappen-Explorer die .cs-Datei in Ihrem Projekt, die die Implementierung der Main() Methode enthält. Standardmäßig wird derselbe Name wie das Projekt verwendet, das es enthält, das Sie während der Projekterstellung angegeben haben.

  3. Fügen Sie am Ende des Methodenkörpers von Main(), zwischen Console.ReadKey() und dem Block zum Herunterfahren der Anwendung (an der Stelle, an der Sie im vorherigen Schnellstart aufgehört haben) den folgenden Code ein.

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. Am Ende von Main() finden Sie den Anwendungsbeendigungsblock, der im vorherigen Quickstart erstellt wurde, und fügen Sie unten Handler-Zeilen hinzu, um Ressourcen freizugeben.

        protectedFileHandler = null;
        protectionHandler = null;
    
  2. Ersetzen Sie die Platzhalterwerte im Quellcode durch die folgenden Werte:

    Platzhalter Wert
    <geschützter Datei-Pfad> Geschützte Datei aus vorherigem Schnellstart.
    <reprotected-file-path> Der Ausgabedateipfad für die geänderte Datei zum erneuten Veröffentlichen.

Erstellen und Testen der Anwendung

Erstellen und testen Sie Ihre Clientanwendung.

  1. Verwenden Sie STRG-SHIFT-B (Lösung erstellen), um Ihre Clientanwendung zu erstellen. Wenn keine Buildfehler auftreten, verwenden Sie F5 (Debuggen starten), um Ihre Anwendung auszuführen.

  2. Wenn das Projekt erfolgreich erstellt und ausgeführt wird, kann die Anwendung Sie jedes Mal zur Authentifizierung über die Microsoft Authentication Library (MSAL) auffordern, wenn das SDK Ihre AcquireToken()-Methode aufruft. Wenn bereits zwischengespeicherte Anmeldeinformationen vorhanden sind, werden Sie nicht aufgefordert, sich anzumelden und die Liste der Labels anzusehen. Anschließend werden die Informationen zum angewendeten Label und zur geänderten Datei angezeigt.

  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.