Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Schnellstart wird das Herabstufen einer Bezeichnung behandelt, wenn die Bezeichnungsrichtlinie eine Rechtfertigung erfordert. In diesem Fall wird die IFileHandler
-Schnittstelle zum Ändern der Bezeichnungen einer Datei verwendet. Weitere Details finden Sie in der API-Referenz.
Voraussetzungen
Falls noch nicht geschehen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen, bevor Sie fortfahren:
- Vollständige Schnellstartanleitung: Festlegen/Abrufen von Vertraulichkeitsbezeichnungen (C#), die eine Startlösung von Visual Studio erstellt, um die Vertraulichkeitsbezeichnungen einer Organisation auflisten und Vertraulichkeitsbezeichnungen auf/aus einer Datei festzulegen und zu lesen. Diese Schnellstartanleitung baut auf der vorherigen auf: "Anleitung – Herabstufen/Entfernen eines Labels, das eine Begründung benötigt C#".
- Optional: Überprüfen Sie die Konzepte von Dateihandlern in den MIP SDK-Konzepten.
Hinzufügen einer Logik zum Festlegen einer niedrigeren Bezeichnung zu einer geschützten Datei
Fügen Sie logik hinzu, um eine Vertraulichkeitsbezeichnung für eine Datei mithilfe des File-Handlerobjekts festzulegen.
Öffnen Sie die Visual Studio-Lösung, die Sie in der vorherigen Schnellstartanleitung erstellt haben: Festlegen/Abrufen von Vertraulichkeitsbezeichnungen (C#).
Ö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.Ändern Sie den
<label-id>
-Wert aus dem vorherigen Schnellstart in eine Vertraulichkeitsbezeichnung, für die zum Herabstufen eine Rechtfertigung erforderlich ist. Während dieser Schnellstartausführung legen wir diese Bezeichnung zuerst fest und versuchen dann, sie über Codeausschnitte in weiteren Schritten zu senken.Fügen Sie den folgenden Code am Ende des
Main()
Textkörpers, unterhalb vonConsole.ReadKey()
und oberhalb des Blocks, bei dem Sie in der vorherigen Schnellstartanleitung mit dem Beenden der Anwendung aufgehört haben, ein.//Set paths and label ID string lowerInput = actualOutputFilePath; string lowerActualInput = lowerInput; string newLabelId = "<new-label-id>"; string lowerOutput = "<downgraded-labled-output>"; string lowerActualOutput = lowerOutput; //Create a file handler for that file var downgradeHandler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(lowerInput, lowerActualInput, true)).Result; //Set Labeling Options LabelingOptions options = new LabelingOptions() { AssignmentMethod = AssignmentMethod.Standard }; try { //Try to set new label downgradeHandler.SetLabel(fileEngine.GetLabelById(newLabelId), options, new ProtectionSettings()); } catch (Microsoft.InformationProtection.Exceptions.JustificationRequiredException) { //Request justification from user Console.Write("Please provide justification for downgrading a label: "); string justification = Console.ReadLine(); options.IsDowngradeJustified = true; options.JustificationMessage = justification; //Set new label downgradeHandler.SetLabel(fileEngine.GetLabelById(newLabelId), options, new ProtectionSettings()); } // Commit changes, save as outputFilePath var downgradedResult = Task.Run(async () => await downgradeHandler.CommitAsync(lowerActualOutput)).Result; // Create a new handler to read the labeled file metadata var commitHandler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(lowerOutput, lowerActualOutput, true)).Result; // Get the label from output file var newContentLabel = commitHandler.Label; Console.WriteLine(string.Format("Getting the new label committed to file: {0}", lowerOutput)); Console.WriteLine(string.Format("File Label: {0} \r\nIsProtected: {1}", newContentLabel.Label.Name, newContentLabel.IsProtectionAppliedFromLabel.ToString())); Console.WriteLine("Press a key to continue."); Console.ReadKey();
Am Ende von Main() finden Sie den Anwendungsshutdown-Block, der im vorherigen Schnellstart erstellt wurde, und fügen Sie die folgenden Handlerzeilen hinzu, um Ressourcen freizugeben.
downgradeHandler = null; commitHandler = null;
Ersetzen Sie die Platzhalterwerte im Quellcode durch die folgenden Werte:
Platzhalter Wert <downgraded-labled-output> Der Ausgabedateipfad, in dem Sie die geänderte Datei speichern möchten. <new-label-id> Eine Vorlagen-ID, die aus der Konsolenausgabe in der vorherigen Schnellstartanleitung kopiert wurde, z. B.: bb7ed207-046a-4caf-9826-647cff56b990
. Stellen Sie sicher, dass die Sensitivität niedriger ist als die zuvor geschützte Dateibezeichnung.
Erstellen und Testen der Anwendung
Erstellen und testen Sie Ihre Clientanwendung.
Verwenden Sie Strg-SHIFT-B (Lösung erstellen), um Ihre Client-App zu erstellen. Wenn keine Buildfehler auftreten, verwenden Sie F5 (Debuggen starten), um Ihre 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 aufgefordert, sich anzumelden. Stattdessen wird die Liste der Beschriftungen sowie Informationen über die angewendete Beschriftung und die geänderte 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_labeled.docx
Name: Confidential
IsProtected: True
Press any key to continue . . .
Please provide justification for downgrading a label: Lower label approved.
Getting the new label committed to file: c:\Test\Test_downgraded.docx
File Label: General
IsProtected: False
Press a key to continue.
Beachten Sie, dass ein ähnlicher Ansatz auch für den DeleteLabel()
-Betrieb gilt, falls das Löschen einer Bezeichnung aus einer Datei eine Begründung gemäß der Bezeichnungsrichtlinie erfordert.DeleteLabel()
Die Funktion löst eine JustificationRequiredException
Ausnahme aus, und die IsDowngradeJustified
Flagge muss bei der Ausnahmebehandlung auf "true" gesetzt werden, bevor eine Bezeichnung erfolgreich gelöscht wird.