Etiket koruma türü sorguları

Bu makalede, uygulamanızın koruma uygulamadan önce davranış ve kullanıcı arabirimi kararları almaları için bir etikette yapılandırılmış koruma türünü belirlemek için MIP SDK API'lerinin nasıl kullanılacağı açıklanmaktadır. Ayrıca anahtar API'leri ve her koruma türü için beklenen davranışı özetler.

Genel bakış

MIP SDK 1.18'den itibaren Label sınıfı, bir etiketin hangi tür koruma uyguladığını belirlemek için yöntemler sağlar. Daha önce uygulamalar yalnızca HasRightsManagementPolicy() bir etiketin herhangi bir koruma uygulayıp uygulamadığını denetleyebiliyordu. Yeni yöntemler, uygulamaların aşağıdaki koruma türlerini ayırt etmelerine olanak tanır:

  • İletmeyi Engelle: Alıcının içeriği iletmesini, yazdırmasını veya kopyalamasını engelleyen bir koruma.
  • Yalnızca Şifrele: İçeriği şifreleyen ancak alıcının eylemlerini şifre çözme dışında kısıtlamayan koruma.
  • Geçici: Kullanıcının uygulama sırasında özel izinleri (kullanıcı tanımlı haklar) tanımladığı koruma.

Bu yöntemler, uygulamaların etiketleri işleme hakkında daha akıllı kararlar almasını sağlar. Örneğin, bir e-posta uygulaması, bir etiketin İletme veya Yalnızca Şifrele koruması altında olup olmamasına bağlı olarak farklı kullanıcı arabirimi seçenekleri sunabilir.

Etiket koruma türlerini sorgulama

C++

mip::Label sınıfı aşağıdaki yöntemleri sağlar:

// Returns true if the label applies any protection.
bool HasRightsManagementPolicy() const;

// Returns true if the label applies Do Not Forward protection.
bool HasDoNotForwardProtection() const;

// Returns true if the label applies Encrypt Only protection.
bool HasEncryptOnlyProtection() const;

// Returns true if the label applies ad-hoc (user-defined) protection.
bool HasAdhocProtection() const;

Örnek: Etiket koruma türlerini inceleme

for (const auto& label : engine->ListSensitivityLabels()) {
    std::cout << "Label: " << label->GetName() << std::endl;

    if (label->HasRightsManagementPolicy()) {
        if (label->HasDoNotForwardProtection()) {
            std::cout << "  Protection type: Do Not Forward" << std::endl;
        } else if (label->HasEncryptOnlyProtection()) {
            std::cout << "  Protection type: Encrypt Only" << std::endl;
        } else if (label->HasAdhocProtection()) {
            std::cout << "  Protection type: Ad-hoc (user-defined permissions)" << std::endl;
        } else {
            std::cout << "  Protection type: Template-based" << std::endl;
        }
    } else {
        std::cout << "  No protection" << std::endl;
    }
}

C# (.NET)

.NET sarmalayıcısında Label sınıfı eşleşen özellikleri kullanıma sunar:

label.HasRightsManagementPolicy  // bool
label.HasDoNotForwardProtection  // bool
label.HasEncryptOnlyProtection   // bool
label.HasAdhocProtection         // bool

Örnek: Etiket koruma türlerini inceleme

foreach (var label in engine.SensitivityLabels)
{
    Console.WriteLine($"Label: {label.Name}");

    if (label.HasRightsManagementPolicy)
    {
        if (label.HasDoNotForwardProtection)
            Console.WriteLine("  Protection type: Do Not Forward");
        else if (label.HasEncryptOnlyProtection)
            Console.WriteLine("  Protection type: Encrypt Only");
        else if (label.HasAdhocProtection)
            Console.WriteLine("  Protection type: Ad-hoc (user-defined permissions)");
        else
            Console.WriteLine("  Protection type: Template-based");
    }
    else
    {
        Console.WriteLine("  No protection");
    }
}

Mevcut API'ler ile ilişki

Bu yeni yöntemler mevcut HasRightsManagementPolicy() yöntemi genişletir. İlişki şu şekildedir:

  • Eğer HasRightsManagementPolicy()false döndürürse, üç yeni yöntemin tümü de false döndürür.
  • Eğer HasRightsManagementPolicy() döndürürse, yeni yöntemlerden en az biri true döndürür veya etiket şablon tabanlı koruma kullanıyorsa hiçbiri true döndürmez.
  • Bir etiket, geçici (kullanıcı tanımlı izinler) ile İletme Yasağı veya Sadece Şifreleme'yi birleştirebilir. Bu birleşik durumlarda:
    • HasDoNotForwardProtection() etiket, İletme korumasını uyguladığında, geçici davranış içerse de içermese de true döndürür.
    • HasEncryptOnlyProtection(), etiket geçici davranış içerse de içermese de Verileri Yalnızca Şifrele koruması uyguladığında true döndürür.
    • HasAdhocProtection(), etiket bağımsız geçici koruma uyguladığında (İletme veya Yalnızca Şifrele olmadan) yalnızca true döner.

Sonraki Adımlar