Microsoft Information Protection SDK: Schnellstart: Erneutes Veröffentlichen mit dem File SDK (C#)
Überblick
Eine Übersicht über dieses Szenario und wo es verwendet werden kann, finden Sie unter Erneutes Veröffentlichen im MIP SDK.
Voraussetzungen
Stellen Sie vor dem Fortfahren sicher, dass die folgenden Voraussetzungen erfüllt sind:
- Schließen Sie zuerst den Schnellstart: Festlegen/Abrufen von Vertraulichkeitsbezeichnungen (C#) ab, in dem in Visual Studio eine Startprojektmappe zum Auflisten der Vertraulichkeitsbezeichnungen einer Organisation und zum Festlegen und Lesen von Vertraulichkeitsbezeichnungen in einer Datei erstellt wird. Dieser Schnellstart „Erneutes Veröffentlichen eines Szenarios in C#“ baut auf dem vorherigen auf.
- Lesen Sie optional die Konzepte zu Dateihandlern im MIP SDK.
- Lesen Sie optional die Konzepte zu Schutzhandlern im MIP SDK.
Hinzufügen von Logik zum Bearbeiten und Wiederveröffentlichen einer geschützten Datei
Öffnen Sie die Visual Studio-Projektmappe, die Sie im vorherigen Artikel „Schnellstart: Festlegen/Abrufen von Vertraulichkeitsbezeichnungen (C#)“ erstellt haben.
Öffnen Sie mithilfe des Projektmappen-Explorers die CS-Datei in Ihrem Projekt, die die Implementierung der
Main()
-Methode enthält. Standardmäßig weist sie denselben Namen wie das Projekt auf, in dem sie enthalten ist. Diesen Namen haben Sie bei der Projekterstellung angegeben.Fügen Sie am Ende des Methodenkörpers von
Main()
, zwischenConsole.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();
}
Suchen Sie am Ende von Main() den im vorherigen Schnellstart erstellten Block zum Herunterfahren der Anwendung, und fügen Sie darunter Handlerzeilen hinzu, um Ressourcen freizugeben.
protectedFileHandler = null; protectionHandler = null;
Ersetzen Sie die Platzhalterwerte im Quellcode durch die folgenden Werte:
Platzhalter Wert <protected-file-path> Geschützte Datei aus dem vorherigen 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 die Clientanwendung.
Drücken Sie STRG+UMSCHALT+B (Projektmappe erstellen), um Ihre Clientanwendung zu erstellen. Wenn keine Buildfehler auftreten, verwenden Sie F5 (Debuggen starten), um die Anwendung auszuführen.
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 zur Anmeldung aufgefordert. Die Liste der Bezeichnungen mit den Informationen zur angewandten Bezeichnung und der geänderten Datei wird 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.