Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıç, etiket politikasının gerekçe istediği durumlarda etiket düşürme işleminin nasıl ele alınacağını açıklar. Burada, bir dosyanın etiketlerini değiştirmek için IFileHandler
arabirimini kullanacağız. Daha fazla ayrıntı için API başvurusuna başvurun.
Önkoş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 ve bir dosyaya/dosyadan duyarlılık etiketlerini ayarlamak ve okumak için başlangıç Visual Studio çözümü oluşturan C# duyarlılık etiketlerini ayarla/al. Bu "Nasıl Yapılır - Gerekçe gerektiren bir etiketi düşürme/kaldırma C#'ı" Hızlı Başlangıç, önceki kılavuzun üzerine inşa edilmiştir.
- İsteğe bağlı olarak: MIP SDK kavramlarındaki Dosya işleyicileri kavramlarını gözden geçirin.
Korumalı dosyaya daha düşük bir etiket ayarlamak için mantık ekleme
Dosya işleyici nesnesini kullanarak dosyada duyarlılık etiketi ayarlamak için mantık ekleyin.
Önceki "Hızlı Başlangıç: Duyarlılık etiketlerini ayarlama/alma(C#) içinde oluşturduğunuz Visual Studio çözümünü açın.
Çözüm Gezgini'ni kullanarak, projenizde yönteminin uygulanmasını
Main()
içeren .cs dosyasını açın. Proje oluşturma sırasında belirlediğiniz isim, varsayılan olarak projeyle aynı olup onu içeren yapıdadır.Önceki hızlı başlangıçtaki
<label-id>
değeri, azaltma için gerekçe gerektiren bir duyarlılık etiketine güncelleştirin. Bu hızlı başlangıç çalıştırması sırasında önce bu etiketi ayarlayıp, ardından sonraki adımlarda kod parçacıkları aracılığıyla değerini azaltmayı deneyeceğiz.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.//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();
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.
downgradeHandler = null; commitHandler = null;
Aşağıdaki değerleri kullanarak kaynak koddaki yer tutucu değerlerini değiştirin:
Yer tutucu Değer <düşürülmüş etiketli çıktı> Değiştirilmiş dosyayı kaydetmek istediğiniz çıkış dosyası yolu. <yeni-etiket-id> Önceki Hızlı Başlangıç'ta konsol çıkışından kopyalanan bir şablon kimliği, örneğin: bb7ed207-046a-4caf-9826-647cff56b990
. Daha önce korunan dosya etiketinden daha düşük duyarlılığa sahip olduğundan emin olun.
Uygulamayı derleme ve test etme
İstemci uygulamanızı derleyin ve test edin.
İstemci uygulamanızı derlemek için CTRL-SHIFT-B (Çözümü Derle) 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 istenmez ve doğrudan etiketler listesini görebilir, ardından uygulanan etiketle ilgili bilgileri ve değiştirilen dosyayı inceleyebilirsiniz.
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.
Benzer yaklaşımın, bir dosyadan silinen etiketin etiket ilkesine göre bir gerekçe gerektirmesi durumunda işlem için DeleteLabel()
de geçerli olduğunu lütfen unutmayın.
DeleteLabel()
işlevi bir JustificationRequiredException
özel durum oluşturur ve IsDowngradeJustified
bir etiketi başarıyla silmeden önce özel durum işlemede bayrağı true olarak ayarlanmalıdır.