Microsoft Information Protection File SDK – Åtgärdsmotivering för att sänka en känslighetsetikett på en fil (C#)
Den här snabbstarten tar upp hanteringen av en nedgraderingsetikettåtgärd när etikettprincipen kräver motivering. Här använder IFileHandler
vi gränssnittet för att ändra etiketterna för en fil. Mer information finns i API-referensen.
Förutsättningar
Om du inte redan har gjort det måste du slutföra följande krav innan du fortsätter:
- Slutför snabbstart: Ange/hämta känslighetsetiketter (C#) som skapar en visual studio-startlösning för att visa en organisations känslighetsetiketter och ange och läsa känslighetsetiketter till/från en fil. Den här snabbstarten "How to – Downgrade/Remove a label that needs a justification C#" bygger på den föregående.
- Valfritt: Granska begrepp för filhanterare i MIP SDK-begreppen.
Lägg till logik för att ange en lägre etikett till en skyddad fil
Lägg till logik för att ange en känslighetsetikett för en fil med hjälp av filhanterarobjektet.
Öppna Visual Studio-lösningen som du skapade i föregående "Snabbstart: Ange/hämta känslighetsetiketter(C#).
Använd Solution Explorer och öppna .cs-filen i projektet som innehåller implementeringen av
Main()
metoden. Det är som standard samma namn som det projekt som innehåller det, som du angav när projektet skapades.<label-id>
Uppdatera värdet från föregående snabbstart till en känslighetsetikett som kräver motivering för att sänka. Under den här snabbstartskörningen anger vi den här etiketten först och försöker sedan sänka den via kodfragment i ytterligare steg.Mot slutet av brödtexten
Main()
, nedanförConsole.ReadKey()
och ovanför block för programavstängning (där du slutade i föregående snabbstart), infogar du följande kod.//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();
Mot slutet av Main() hittar du programavstängningsblocket som skapades i föregående snabbstart och lägger till nedanstående hanteringsrader för att frigöra resurser.
downgradeHandler = null; commitHandler = null;
Ersätt platshållarvärdena i källkoden med hjälp av följande värden:
Platshållare Värde <downgraded-labled-output> Sökvägen till utdatafilen som du vill spara den ändrade filen till. <new-label-id> Ett mall-ID som kopierades från konsolens utdata i föregående snabbstart, till exempel: bb7ed207-046a-4caf-9826-647cff56b990
. Kontrollera att den har lägre känslighet än den tidigare skyddade filetiketten.
Skapa och testa programmet
Skapa och testa klientprogrammet.
Använd CTRL-SHIFT-B (Build Solution) för att skapa klientprogrammet. Om du inte har några byggfel använder du F5 (Starta felsökning) för att köra programmet.
Om projektet byggs och körs korrekt kan programmet fråga efter autentisering med hjälp av Microsoft Authentication Library (MSAL) varje gång SDK:t anropar din
AcquireToken()
metod. Om cachelagrade autentiseringsuppgifter redan finns uppmanas du inte att logga in och se listan med etiketter, följt av informationen på den tillämpade etiketten och den ändrade filen.
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.
Observera att liknande metod även gäller för DeleteLabel()
åtgärder, om etiketten som tas bort från en fil kräver en motivering enligt etikettprincipen.DeleteLabel()
funktionen utlöser ett JustificationRequiredException
undantag och IsDowngradeJustified
flaggan ska vara inställd på true i undantagshantering innan en etikett tas bort.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för