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:
- Conclua primeiro o Início Rápido: listar rótulos de confidencialidade (C#), que cria uma solução inicial do Visual Studio para listar os rótulos de confidencialidade de uma organização. Este Início Rápido "Definir e obter um rótulo de confidencialidade" é baseado no anterior.
- Opcionalmente: examine os conceitos de manipuladores de arquivos no SDK da PIM.
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.
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.
Ao final do corpo de
Main()
, apósvar 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();
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;
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.
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.
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.