Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este Início Rápido mostra mais casos de uso dos SDKs de arquivo da PIM. Usando 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 de 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
Caso ainda não tenha feito isso, certifique-se de concluir os seguintes pré-requisitos antes de continuar:
- 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: Revisar os conceitos de manipuladores de arquivos no SDK do MIP.
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 do projeto que o contém, que você especificou durante a criação do projeto.
No final do
Main()corpo, depois dovar 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 seu aplicativo cliente.
Use CTRL-SHIFT-B (Build Solution) para criar seu aplicativo cliente. Se você não tiver erros de build, use F5 (Iniciar depuração) para executar seu aplicativo.
Se o projeto for compilado e executado com êxito, o aplicativo poderá solicitar a autenticação por meio do ADAL sempre que o SDK chamar seu
AcquireToken()método. Se as credenciais armazenadas em cache já existirem, você não será solicitado a entrar e ver a lista de rótulos, seguido 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 o aplicativo 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.