Microsoft Information Protection SDK - Dosya SDK'sı Yeniden Yayımlama Hızlı Başlangıcı (C#)
Genel Bakış
Bu senaryoya ve nerede kullanılabileceğini öğrenmek için bkz. MIP SDK'sında yeniden yayımlama.
Ön koşullar
Henüz yapmadıysanız devam etmeden önce aşağıdaki önkoşulları tamamladığınızdan emin olun:
- Eksiksiz Hızlı Başlangıç: Bir kuruluşun duyarlılık etiketlerini listelemek, bir dosyaya/dosyadan duyarlılık etiketlerini ayarlamak ve okumak için ilk olarak bir başlangıç Visual Studio çözümü oluşturan duyarlılık etiketlerini (C#) ayarlayın/alın. Bu "Nasıl yapılır - Korumalı bir dosyayı yeniden yayımlama - C#" Hızlı Başlangıcı öncekini temel alır.
- İsteğe bağlı olarak: MIP SDK kavramlarındaki Dosya işleyicilerini gözden geçirin.
- İsteğe bağlı olarak: MIP SDK kavramlarındaki Koruma işleyicilerini gözden geçirin.
Korumalı dosyayı düzenlemek ve yeniden yayımlamak için mantık ekleme
Önceki "Hızlı Başlangıç: Duyarlılık etiketlerini ayarlama/alma (C#)" makalesinde oluşturduğunuz Visual Studio çözümünü açın.
Çözüm Gezgini kullanarak, yönteminin uygulanmasını
Main()
içeren projenizde .cs dosyasını açın. Varsayılan olarak, proje oluşturma sırasında belirttiğiniz, onu içeren projeyle aynı ada sahiptir.Gövdenin sonuna doğru, uygulama kapatma bloğunun
Main()
altınaConsole.ReadKey()
ve üstüne (önceki Hızlı Başlangıçta kaldığınız yer) aşağıdaki kodu ekleyin.
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();
}
Main() sonuna doğru, önceki hızlı başlangıçta oluşturulan uygulama kapatma bloğunu bulun ve kaynakları serbest bırakmak için aşağıdaki işleyici satırlarını ekleyin.
protectedFileHandler = null; protectionHandler = null;
Aşağıdaki değerleri kullanarak kaynak koddaki yer tutucu değerlerini değiştirin:
Yer tutucu Değer <protected-file-path> Önceki hızlı başlangıçtan korumalı dosya. <reprotected-file-path> Değiştirilen dosyanın yeniden yayımlandığı çıkış dosyası yolu.
Uygulamayı derleme ve test etme
İstemci uygulamanızı derleyin ve test edin.
İstemci uygulamanızı derlemek için CTRL-SHIFT-B (Çözüm Derleme) kullanın. Derleme hatanız yoksa, uygulamanızı çalıştırmak için F5 (Hata ayıklamayı başlat) kullanın.
Projeniz başarıyla derlenip çalıştırılırsa, SDK yönteminizi
AcquireToken()
her çağırdığında uygulama Microsoft Authentication Library (MSAL) kullanarak kimlik doğrulaması isteyebilir. Önbelleğe alınmış kimlik bilgileri zaten varsa, oturum açmanız ve etiket listesini ve ardından uygulanan etiket ve değiştirilen dosyadaki bilgileri görmeniz istenmez.
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.