Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten szybki start dotyczy obsługi operacji obniżenia etykiety, gdy zasady znaczników wymagają uzasadnienia. W tym miejscu użyjemy IFileHandler interfejsu do zmiany etykiet pliku. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją interfejsu API.
Wymagania wstępne
Jeśli jeszcze tego nie zrobiono, przed kontynuowaniem upewnij się, że zostały spełnione następujące wymagania wstępne:
- Wykonaj Quickstart: ustawianie/pobieranie etykiet poufności (C#), które tworzy rozwiązanie początkowe w Visual Studio, aby wyświetlić listę etykiet poufności organizacji oraz ustawić i odczytać etykiety poufności z/do pliku. Ten przewodnik szybkiego startu "Jak obniżyć poziom/usunąć etykietę wymagającą uzasadnienia w C#" opiera się na poprzednim.
- Opcjonalnie: Zapoznaj się z pojęciami dotyczącymi procedur obsługi plików w pojęciach dotyczących zestawu MIP SDK.
Dodaj logikę, aby ustawić niższą etykietę na chroniony plik
Dodaj logikę, aby ustawić etykietę poufności w pliku przy użyciu obiektu programu obsługi plików.
Otwórz rozwiązanie programu Visual Studio utworzone w poprzednim przewodniku "Szybki start: ustawianie/uzyskiwanie etykiet poufności(C#).
Używając Solution Explorer, otwórz plik .cs w swoim projekcie, który zawiera implementację metody
Main(). Domyślnie ma taką samą nazwę jak projekt zawierający go, który został określony podczas tworzenia projektu.Zaktualizuj wartość
<label-id>z poprzedniego szybkiego startu do etykiety poufności, dla której obniżenie wymaga uzasadnienia. W trakcie tego szybkiego startu, najpierw ustawimy tę etykietę, a następnie spróbujemy zmienić jej położenie za pomocą fragmentów kodu w kolejnych krokach.Pod koniec sekcji
Main()treści, poniżejConsole.ReadKey()i powyżej bloku zamykania aplikacji (gdzie skończyłeś w poprzednim przewodniku Quickstart), wstaw następujący 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();Na końcu sekcji Main() znajdź blok zamykania aplikacji utworzony w poprzednim przewodniku Szybki start i dodaj poniższe wiersze procedury obsługi, aby zwolnić zasoby.
downgradeHandler = null; commitHandler = null;Zastąp wartości symboli zastępczych w kodzie źródłowym przy użyciu następujących wartości:
Zastępczy element Wartość <obniżone oznakowane wyjście> Ścieżka pliku wyjściowego, do którego chcesz zapisać zmodyfikowany plik. <nowy-identyfikator-etykiety> Identyfikator szablonu skopiowany z danych wyjściowych konsoli w poprzednim przewodniku "Rozpocznij Szybko", na przykład: bb7ed207-046a-4caf-9826-647cff56b990. Upewnij się, że ma niższą czułość niż wcześniej chroniona etykieta pliku.
Kompilowanie i testowanie aplikacji
Skompiluj i przetestuj aplikację kliencą.
Użyj CTRL-SHIFT-B (Kompiluj rozwiązanie) do skompilowania aplikacji klienckiej. Jeśli nie masz błędów kompilacji, użyj F5 (Rozpocznij debugowanie), aby uruchomić aplikację.
Jeśli projekt buduje się i uruchamia się pomyślnie, aplikacja może monitować o uwierzytelnienie z użyciem biblioteki Microsoft Authentication Library (MSAL) za każdym razem, gdy zestaw SDK wywołuje metodę
AcquireToken(). Jeśli buforowane poświadczenia już istnieją, nie zostanie wyświetlony monit o zalogowanie i zobaczysz listę etykiet, a następnie informacje o zastosowanej etykiecie i zmodyfikowanym pliku.
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.
Należy pamiętać, że podobne podejście dotyczy również tej DeleteLabel() operacji, jeśli etykieta usunięta z pliku wymaga uzasadnienia zgodnie z polityką etykiet.
DeleteLabel() Funkcja zgłasza JustificationRequiredException wyjątek i flaga IsDowngradeJustified powinna być ustawiona na wartość true w obsłudze wyjątków przed pomyślnym usunięciem etykiety.