다음을 통해 공유


빠른 시작: 민감도 레이블 설정 및 가져오기(C#)

이 빠른 시작에서는 더 많은 MIP 파일 SDK를 사용하는 방법을 보여 줍니다. 이전 빠른 시작에 나열된 민감도 레이블 중 하나를 사용하여 파일 처리기를 사용하여 파일에 레이블을 설정/가져올 수 있습니다. 파일 처리기 클래스는 지원되는 파일 형식에 대해 레이블을 설정/가져오거나 보호하기 위한 다양한 작업을 노출합니다.

필수 조건

아직 완료하지 않은 경우 계속하기 전에 다음 필수 구성 요소를 완료해야 합니다.

  • 먼저, 시작 Visual Studio 솔루션을 구축하는 빠른 시작: 민감도 레이블 나열(C#)을 완료하여 조직의 민감도 레이블을 나열합니다. 이 “민감도 레이블 설정 및 가져오기” 빠른 시작은 이전 빠른 시작에 빌드합니다.
  • 선택 사항: MIP SDK의 파일 처리기 개념을 검토합니다.

민감도 레이블을 설정하고 가져올 논리 추가

파일 엔진 개체를 사용하여 파일에 민감도 레이블을 설정하고 가져올 수 있는 논리를 추가합니다.

  1. 솔루션 탐색기를 사용하여 Main()` 메서드 구현을 포함하는 프로젝트에서 .cs 파일을 엽니다. 기본값은 프로젝트 생성 중에 지정한 이름이 포함된 프로젝트와 동일한 이름입니다.

  2. Main() 본문의 끝 부분을 향해, var fileEngine = 뒤와 //Application Shutdown 주석 위에 다음 코드를 삽입합니다.

      //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. Main()의 끝부분에 첫 번째 빠른 시작에서 생성된 애플리케이션 종료 블록을 찾고 처리기 줄의 주석 처리를 제거합니다.

    // Application Shutdown
    handler = null;
    fileEngine = null;
    fileProfile = null;
    mipContext = null;
    
  4. 다음 값을 사용하여 소스 코드의 자리 표시자 값을 바꿉니다.

    자리 표시자
    <input-file-path> 테스트 입력 파일에 대한 전체 경로(예: c:\\Test\\Test.docx).
    <label-id> 이전 빠른 시작의 콘솔 출력에서 복사한 민감도 레이블 ID(예: f42a3342-8706-4288-bd31-ebb85995028z).
    <output-file-path> 입력 파일의 레이블이 지정된 복사본인 출력 파일의 전체 경로(예: c:\\Test\\Test_labeled.docx).

응용 프로그램 구축 및 테스트

클라이언트 애플리케이션을 빌드하고 테스트합니다.

  1. CTRL-SHIFT-B(솔루션 빌드)를 사용하여 클라이언트 애플리케이션을 빌드합니다. 빌드 오류가 없는 경우 F5(디버깅 시작) 키를 사용하여 애플리케이션을 실행합니다.

  2. 프로젝트가 빌드되어 성공적으로 실행되는 경우 애플리케이션은 SDK가 AcquireToken() 메서드를 호출할 때마다 ADAL을 통해 인증을 요청할 수 있습니다. 캐시된 자격 증명이 이미 있는 경우 로그인하라는 메시지가 표시되지 않고 라벨 목록과 적용된 라벨 및 수정된 파일에 대한 정보가 표시됩니다.

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.

출력 파일을 열고 문서의 정보 보호 설정을 시각적으로 검사하여 레이블의 애플리케이션을 확인할 수 있습니다.

참고 항목

Office 문서에 레이블을 지정하지만 액세스 토큰을 가져온 Microsoft Entra 테넌트의 계정을 사용하여 로그인하지 않은 경우(및 민감도 레이블이 구성된 경우) 레이블이 지정된 문서를 열기 전에 로그인하라는 메시지가 표시될 수 있습니다.