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.
Przegląd
Aby uzyskać omówienie tego scenariusza i dowiedzieć się, gdzie można go użyć, odnieś się do Ponowne publikowanie w pakiecie MIP SDK.
Wymagania wstępne
Jeśli jeszcze tego nie zrobiono, przed kontynuowaniem upewnij się, że zostały spełnione następujące wymagania wstępne:
- Najpierw ukończ szybki start: Ustaw/uzyskaj etykiety poufności (C#), który tworzy początkowe rozwiązanie w Visual Studio. To umożliwi wyświetlenie listy etykiet poufności organizacji oraz ustawianie i odczytywanie etykiet poufności w pliku. Ten szybki przewodnik "Instrukcje – ponowne opublikowanie chronionego pliku – C#" nawiązuje do poprzedniego.
- Opcjonalnie: Zapoznaj się z procedurami obsługi plików w pojęciach dotyczących zestawu MIP SDK.
- Opcjonalnie: Zapoznaj się z mechanizmami ochrony w konceptach MIP SDK.
Dodawanie logiki w celu edytowania i ponownego publikowania chronionego pliku
Otwórz rozwiązanie programu Visual Studio utworzone w poprzednim artykule "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.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.
string protectedFilePath = "<protected-file-path>" // Originally protected file's path from previous quickstart.
//Create a fileHandler for consumption for the Protected File.
var protectedFileHandler = Task.Run(async () =>
await fileEngine.CreateFileHandlerAsync(protectedFilePath,// inputFilePath
protectedFilePath,// actualFilePath
false, //isAuditDiscoveryEnabled
null)).Result; // fileExecutionState
// Store protection handler from file
var protectionHandler = protectedFileHandler.Protection;
//Check if the user has the 'Edit' right to the file
if (protectionHandler.AccessCheck("Edit"))
{
// Decrypt file to temp path
var tempPath = Task.Run(async () => await protectedFileHandler.GetDecryptedTemporaryFileAsync()).Result;
/*
Your own application code to edit the decrypted file belongs here.
*/
/// Follow steps below for re-protecting the edited file. ///
// Create a new file handler using the temporary file path.
var republishHandler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(tempPath, tempPath, false)).Result;
// Set protection using the ProtectionHandler from the original consumption operation.
republishHandler.SetProtection(protectionHandler);
// New file path to save the edited file
string reprotectedFilePath = "<reprotected-file-path>" // New file path for saving reprotected file.
// Write changes
var reprotectedResult = Task.Run(async () => await republishHandler.CommitAsync(reprotectedFilePath)).Result;
var protectedLabel = protectedFileHandler.Label;
Console.WriteLine(string.Format("Originally protected file: {0}", protectedFilePath));
Console.WriteLine(string.Format("File LabelID: {0} \r\nProtectionOwner: {1} \r\nIsProtected: {2}",
protectedLabel.Label.Id,
protectedFileHandler.Protection.Owner,
protectedLabel.IsProtectionAppliedFromLabel.ToString()));
var reprotectedLabel = republishHandler.Label;
Console.WriteLine(string.Format("Reprotected file: {0}", reprotectedFilePath));
Console.WriteLine(string.Format("File LabelID: {0} \r\nProtectionOwner: {1} \r\nIsProtected: {2}",
reprotectedLabel.Label.Id,
republishHandler.Protection.Owner,
reprotectedLabel.IsProtectionAppliedFromLabel.ToString()));
Console.WriteLine("Press a key to continue.");
Console.ReadKey();
}
Na końcu sekcji Main() znajdź blok zamykania aplikacji utworzony w poprzednim przewodniku szybkiego startu i dodaj poniższe linie kodu obsługi, aby zwolnić zasoby.
protectedFileHandler = null; protectionHandler = 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ść <ścieżka chronionego pliku> Zabezpieczony plik z poprzedniego szybkiego startu. <ponownie chroniona ścieżka pliku> Ścieżka pliku wyjściowego do zmodyfikowanego pliku do ponownego opublikowania.
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_protected.docx
File Label: Confidential
IsProtected: True
Press a key to continue.
Originally protected file: C:\Test\Test_protected.docx
File LabelID: 569af77e-61ea-4deb-b7e6-79dc73653959
ProtectionOwner: User1@Contoso.OnMicrosoft.com
IsProtected: True
Reprotected file: C:\Test\Test_reprotected.docx
File LabelID: 569af77e-61ea-4deb-b7e6-79dc73653959
ProtectionOwner: User1@Contoso.OnMicrosoft.com
IsProtected: True
Press a key to continue.