Microsoft Information Protection SDK – Snabbstart för ompublicering av fil-SDK (C#)
Översikt
En översikt över det här scenariot och var det kan användas finns i Publicera om i MIP SDK.
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#) först, som skapar en startlösning för Visual Studio, för att lista en organisations känslighetsetiketter, för att ange och läsa känslighetsetiketter till/från en fil. Den här snabbstarten "How to – Republish a protected file - C#" bygger på den tidigare.
- Alternativt: Granska filhanterare i MIP SDK-begreppen.
- Alternativt: Granska skyddshanterare i MIP SDK-begreppen.
Lägga till logik för att redigera och publicera om en skyddad fil
Öppna Visual Studio-lösningen som du skapade i föregående artikel "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.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.
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();
}
Mot slutet av Main() hittar du det block för programavstängning som skapades i föregående snabbstart och lägger till nedanstående hanteringsrader för att frigöra resurser.
protectedFileHandler = null; protectionHandler = null;
Ersätt platshållarvärdena i källkoden med hjälp av följande värden:
Platshållare Värde <protected-file-path> Skyddad fil från föregående snabbstart. <reprotected-file-path> Sökvägen till utdatafilen för den ändrade filen som ska publiceras på nytt.
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_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.
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