Microsoft Information Protection File SDK - Actie-reden voor het verlagen van een vertrouwelijkheidslabel op een bestand (C#)
In deze quickstart wordt de verwerking van een downgradelabelbewerking behandeld wanneer voor het labelbeleid een reden is vereist. Hier gebruiken IFileHandler
we de interface voor het wijzigen van de labels van een bestand. Raadpleeg de API-naslaginformatie voor meer informatie.
Vereisten
Als u dat nog niet hebt gedaan, moet u de volgende vereisten voltooien voordat u doorgaat:
- Volledige quickstart: Vertrouwelijkheidslabels (C#) instellen/ophalen waarmee een eenvoudige Visual Studio-oplossing wordt gebouwd om de vertrouwelijkheidslabels van een organisatie weer te geven en vertrouwelijkheidslabels in te stellen en te lezen naar/van een bestand. Deze quickstart 'How to - Downgrade/Remove a label that needs a justification C#' is gebaseerd op de vorige.
- Optioneel: Controleer de concepten van bestandshandlers in de MIP SDK-concepten.
Logica toevoegen om een lager label in te stellen op een beveiligd bestand
Voeg logica toe om een vertrouwelijkheidslabel in te stellen op een bestand met behulp van het object Bestandshandler.
Open de Visual Studio-oplossing die u in de vorige quickstart hebt gemaakt: Vertrouwelijkheidslabels instellen/ophalen (C#).
Open met Solution Explorer het .cs-bestand in uw project dat de implementatie van de
Main()
methode bevat. Deze wordt standaard ingesteld op dezelfde naam als het project dat het bevat, die u hebt opgegeven tijdens het maken van het project.Werk de
<label-id>
waarde uit de vorige quickstart bij naar een vertrouwelijkheidslabel waarvoor een reden nodig is om te verlagen. Tijdens deze quickstart stellen we eerst dit label in en proberen we het vervolgens te verlagen via codefragmenten in verdere stappen.Voeg aan het einde van de hoofdtekst, onder
Console.ReadKey()
en boven het afsluitblok van deMain()
toepassing (waar u was gebleven in de vorige quickstart), de volgende code in.//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();
Zoek aan het einde van Main() het afsluitblok van de toepassing dat in de vorige quickstart is gemaakt en voeg onderstaande handlerregels toe om resources vrij te geven.
downgradeHandler = null; commitHandler = null;
Vervang de tijdelijke aanduidingen in de broncode met behulp van de volgende waarden:
Tijdelijke aanduiding Waarde <downgraded-labled-output> Het pad naar het uitvoerbestand waarnaar u het gewijzigde bestand wilt opslaan. <new-label-id> Een sjabloon-id, gekopieerd uit de console-uitvoer in de vorige quickstart, bijvoorbeeld: bb7ed207-046a-4caf-9826-647cff56b990
. Zorg ervoor dat het een lagere gevoeligheid heeft dan het eerder beveiligde bestandslabel.
De toepassing bouwen en testen
Bouw en test uw clienttoepassing.
Gebruik Ctrl-Shift-B (build solution) om uw clienttoepassing te bouwen. Als u geen buildfouten hebt, gebruikt u F5 (Foutopsporing starten) om uw toepassing uit te voeren.
Als uw project wordt gebouwd en uitgevoerd, kan de toepassing telkens wanneer de SDK uw
AcquireToken()
methode aanroept, om verificatie vragen met behulp van Microsoft Authentication Library (MSAL). Als er al referenties in de cache aanwezig zijn, wordt u niet gevraagd u aan te melden en de lijst met labels te zien, gevolgd door de informatie over het toegepaste label en het gewijzigde bestand.
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.
Houd er rekening mee dat een vergelijkbare benadering ook van toepassing is op DeleteLabel()
de bewerking, voor het geval het label dat uit een bestand wordt verwijderd, een reden vereist volgens het labelbeleid.DeleteLabel()
met de functie wordt een JustificationRequiredException
uitzondering gegenereerd en IsDowngradeJustified
moet de vlag worden ingesteld op true in de afhandeling van uitzonderingen voordat een label wordt verwijdert.