Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento rychlý průvodce se zabývá zpracováním operace degradování, když zásady pro popisky vyžadují odůvodnění. Použijeme rozhraní IFileHandler pro změnu popisků souboru. Další podrobnosti najdete v referenčních informacích k rozhraní API.
Požadavky
Pokud jste to ještě neudělali, nezapomeňte před pokračováním dokončit následující požadavky:
- Dokončete Quickstart: Nastavení/získání popisků citlivosti (C#), který vytvoří úvodní řešení pro Visual Studio k výpisu popisků citlivosti organizace a k nastavení a čtení popisků citlivosti ze souboru. Tento rychlý start "How to - Downgrade/Remove a label that needs a justification C#" (Postup – Downgrade/Remove a label, který potřebuje odůvodnění jazyka C#), vychází z předchozího.
- Volitelně: Projděte si koncepty obslužných rutin souborů v konceptech sady MIP SDK.
Přidejte logiku pro nastavení nižšího štítku pro chráněný soubor.
Přidejte logiku pro nastavení štítku citlivosti na souboru pomocí objektu pro zpracování souborů.
Otevřete řešení sady Visual Studio, které jste vytvořili v předchozím rychlém startu: Nastavení nebo získání popisků citlivosti (C#).
V Průzkumníku řešení otevřete soubor .cs v projektu, který obsahuje implementaci
Main()metody. V rámci výchozího nastavení se použije stejný název jako projekt, který ho obsahuje a který jste zadali při vytváření projektu.Aktualizujte hodnotu z předchozího rychlého startu
<label-id>na popisek citlivosti, který vyžaduje odůvodnění snížení. Během tohoto rychlého startu nejprve nastavíme tento popisek a pak ho v dalších krocích zkusíme snížit pomocí fragmentů kódu.Na konec těla
Main(), podConsole.ReadKey()a nad blokem vypnutí aplikace (kde jste skončili v předchozím rychlém startu), vložte následující kód.//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();Na konci main() vyhledejte blok vypnutí aplikace vytvořený v předchozím rychlém startu a přidejte následující řádky obslužné rutiny k uvolnění prostředků.
downgradeHandler = null; commitHandler = null;Zástupné hodnoty ve zdrojovém kódu nahraďte následujícími hodnotami:
Zástupný text Hodnota <degradovaný-označený-výstup> Cesta k výstupnímu souboru, do kterého chcete uložit upravený soubor. <new-label-id> ID šablony zkopírované z výstupu konzoly v předchozím rychlém startu, například: bb7ed207-046a-4caf-9826-647cff56b990. Ujistěte se, že má nižší citlivost než popisek dříve chráněného souboru.
Sestavení a otestování aplikace
Sestavte a otestujte klientskou aplikaci.
K sestavení klientské aplikace stiskněte kombinaci kláves CTRL +SHIFT-B (Build Solution). Pokud nemáte žádné chyby sestavení, spusťte aplikaci pomocí klávesy F5 (spustit ladění).
Pokud se projekt sestaví a úspěšně spustí, může aplikace při každém volání vaší
AcquireToken()metody vyzvat k ověření pomocí knihovny Microsoft Authentication Library (MSAL). Pokud přihlašovací údaje uložené v mezipaměti už existují, nebudete vyzváni k přihlášení a zobrazí se seznam popisků a informace o použitém popisku a upraveném souboru.
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.
Upozorňujeme, že podobný přístup platí i pro DeleteLabel() operace, pokud popisek odstraněný ze souboru vyžaduje odůvodnění podle zásad popisku.
DeleteLabel() funkce vyvolá JustificationRequiredException výjimku a IsDowngradeJustified příznak by měl být při zpracování výjimek nastaven na true, aby bylo možné úspěšně odstranit popisek.