Início Rápido: definir e obter um rótulo de confidencialidade (C#)

Este Início Rápido mostra mais casos de uso dos SDKs de arquivo da PIM. Com um dos rótulos de confidencialidade listados no Início Rápido anterior, você usa um manipulador de arquivos para definir/obter o rótulo em um arquivo. A classe do manipulador de arquivos expõe várias operações para definir/obter rótulos ou proteção para tipos de arquivo com suporte.

Pré-requisitos

Conclua os seguintes pré-requisitos antes de continuar, caso ainda não tenha feito isso:

Adicionar uma lógica para definir e obter um rótulo de confidencialidade

Adicione uma lógica para definir e obter um rótulo de confidencialidade em um arquivo usando o objeto Mecanismo de arquivo.

  1. Usando o Gerenciador de Soluções, abra o arquivo .cs em seu projeto que contém a implementação do método Main()`. Ele usa como padrão o mesmo nome que o projeto em que está contido, que você especificou durante a criação do projeto.

  2. Ao final do corpo de Main(), após var fileEngine = e acima do comentário //Application Shutdown, insira o seguinte código:

      //Set paths and label ID
      string inputFilePath = "<input-file-path>";
      string actualFilePath = inputFilePath;
      string labelId = "<label-id>";
      string outputFilePath = "<output-file-path>";
      string actualOutputFilePath = outputFilePath;
    
      //Create a file handler for that file
      //Note: the 2nd inputFilePath is used to provide a human-readable content identifier for admin auditing.
      var handler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(inputFilePath, actualFilePath, true)).Result;
    
      //Set Labeling Options
      LabelingOptions labelingOptions = new LabelingOptions()
      {
           AssignmentMethod = AssignmentMethod.Standard
      };
    
      // Set a label on input file
      handler.SetLabel(fileEngine.GetLabelById(labelId), labelingOptions, new ProtectionSettings());
    
      // Commit changes, save as outputFilePath
      var result = Task.Run(async () => await handler.CommitAsync(outputFilePath)).Result;
    
      // Create a new handler to read the labeled file metadata
      var handlerModified = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(outputFilePath, actualOutputFilePath, true)).Result;
    
      // Get the label from output file
      var contentLabel = handlerModified.Label;
      Console.WriteLine(string.Format("Getting the label committed to file: {0}", outputFilePath));
      Console.WriteLine(string.Format("File Label: {0} \r\nIsProtected: {1}", contentLabel.Label.Name, contentLabel.IsProtectionAppliedFromLabel.ToString()));
      Console.WriteLine("Press a key to continue.");
      Console.ReadKey();
    
  3. Ao final de Main(), encontre o bloco de desligamento do aplicativo criado no primeiro início rápido e remova a marca de comentário da linha do manipulador:

    // Application Shutdown
    handler = null;
    fileEngine = null;
    fileProfile = null;
    mipContext = null;
    
  4. Substitua os valores de espaço reservado no código-fonte usando os seguintes valores:

    Espaço reservado Valor
    <input-file-path> O caminho completo para um arquivo de entrada de teste. Por exemplo: c:\\Test\\Test.docx.
    <label-id> Uma ID de rótulo de confidencialidade, copiada da saída do console no Início Rápido anterior. Por exemplo: f42a3342-8706-4288-bd31-ebb85995028z.
    <output-file-path> O caminho completo para o arquivo de saída, que será uma cópia rotulada do arquivo de entrada. Por exemplo: c:\\Test\\Test_labeled.docx.

Criar e testar o aplicativo

Crie e teste o aplicativo cliente.

  1. Use CTRL-SHIFT-B (Compilar solução) para compilar o aplicativo cliente. Se não houver erros de build, use F5 (Iniciar depuração) para executar o aplicativo.

  2. Se o projeto for criado e executado com sucesso, o aplicativo poderá solicitar a autenticação por meio da ADAL sempre que o SDK chamar o método AcquireToken(). Se já houver credenciais armazenadas em cache, não será solicitado que você entre e veja a lista de rótulos, seguida pelas informações sobre o rótulo aplicado e o arquivo modificado.

Personal : 73c47c6a-eb00-4a6a-8e19-efaada66dee6
Public : 73254501-3d5b-4426-979a-657881dfcb1e
General : da480625-e536-430a-9a9e-028d16a29c59
Confidential : 569af77e-61ea-4deb-b7e6-79dc73653959
      Recipients Only (C) : d98c4267-727b-430e-a2d9-4181ca5265b0
      All Employees (C) : 2096f6a2-d2f7-48be-b329-b73aaa526e5d
      Anyone (not protected) (C) : 63a945ec-1131-420d-80da-2fedd15d3bc0
Highly Confidential : 905845d6-b548-439c-9ce5-73b2e06be157
      Recipients Only : 05ee72d9-1a75-441f-94e2-dca5cacfe012
      All Employees : 922b06ef-044b-44a3-a8aa-df12509d1bfe
      Anyone (not protected) : c83fc820-961d-40d4-ba12-c63f72a970a3
Press a key to continue.

 Applying Label ID 074e457c-5848-4542-9a6f-34a182080e7z to c:\Test\Test.docx
 Committing changes

 Label committed to file: c:\Test\Test_labeled.docx
 Press any key to continue.

 Getting the label committed to file: c:\Test\Test_labeled.docx
 File Label: Confidential
 IsProtected: false   
 Press any key to continue.

Você pode verificar a aplicação do rótulo abrindo o arquivo de saída e inspecionando visualmente as configurações de proteção de informações do documento.

Observação

Se você estiver rotulando um documento do Office, mas não estiver conectado usando uma conta de locatário do Microsoft Entra em que o token de acesso foi obtido (e rótulos de confidencialidade estiverem configurados), será solicitado que você faça locatário antes de abrir o documento rotulado.