Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve como usar APIs do MIP SDK para identificar o tipo de proteção configurada numa etiqueta, de modo a que a sua aplicação possa tomar decisões de comportamento e UI antes de aplicar proteção. Resume também as APIs-chave e o comportamento esperado para cada tipo de proteção.
Descrição geral
A partir do MIP SDK 1.18, a Label classe expõe métodos para determinar que tipo de proteção uma etiqueta aplica. Anteriormente, as aplicações só podiam verificar HasRightsManagementPolicy() para determinar se um rótulo aplicava proteção. Os novos métodos permitem que as aplicações diferenciem entre os seguintes tipos de proteção:
- Não Encaminhe Proteção que impede o destinatário de reenviar, imprimir ou copiar o conteúdo.
- Apenas Encriptar Proteção que encripta o conteúdo mas não restringe as ações do destinatário para além da desencriptação.
- Ad-hoc Proteção quando o utilizador define permissões personalizadas (direitos definidos pelo utilizador) no momento da aplicação.
Estes métodos permitem que as aplicações tomem decisões mais inteligentes sobre como lidar com etiquetas. Por exemplo, uma aplicação de email pode apresentar diferentes opções de interface de utilizador dependendo se uma etiqueta aplica a proteção Não Reencaminhar ou Apenas Encriptar.
Consultar tipos de proteção de etiquetas
C++
A mip::Label classe fornece os seguintes métodos:
// 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;
Exemplo: Inspeção dos tipos de proteção de etiquetas
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)
No wrapper .NET, a Label classe expõe propriedades correspondentes:
label.HasRightsManagementPolicy // bool
label.HasDoNotForwardProtection // bool
label.HasEncryptOnlyProtection // bool
label.HasAdhocProtection // bool
Exemplo: Inspeção dos tipos de proteção de etiquetas
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");
}
}
Relação com APIs existentes
Estes novos métodos complementam o método existente HasRightsManagementPolicy() . A relação é:
- Se
HasRightsManagementPolicy()retornafalse, os três métodos novos também retornamfalse. - Se
HasRightsManagementPolicy()retornartrue, pelo menos um dos novos métodos retornarátrue, ou nenhum retornarátruese o rótulo usar proteção baseada em template. - Uma etiqueta pode combinar permissões ad-hoc (definidas pelo utilizador) com Não Encaminhar ou Encriptar Apenas. Nestes casos combinados:
-
HasDoNotForwardProtection()retornatruequando o rótulo aplica proteção de Não Encaminhar, independentemente de incluir ou não comportamento ad hoc. -
HasEncryptOnlyProtection()retornatruequando o rótulo aplica proteção Encriptação Apenas, independentemente de incluir ou não comportamento ad hoc. -
HasAdhocProtection()retornatrueapenas quando o rótulo aplica proteção ad-hoc autónoma (sem Não Encaminhar ou Apenas Encriptar).
-