Microsoft Information Protection SDK - Memperoleh status sebuah file

Dalam MIP SDK File API, mip::FileHandler::GetFileStatus() fungsi statis memungkinkan pengembang untuk mengambil status file tanpa persyaratan membuat Objek Mesin File, autentikasi, dan bahkan konektivitas. Semua yang diperlukan adalah nama file dan pembuatan mipContext bersama dengan jalur file dan aliran.

Jenis file yang didukung

  • Format File Office berdasarkan OCP (Office 2010 dan yang lebih baru)
  • Format File Office Lama (Office 2007)
  • PDF
  • Dukungan PFILE generik
  • File yang mendukung Adobe XMP
  • Email - .MSG Format

Fungsi GetFileStatus()

mip::FileHandler::GetFileStatus() memungkinkan pengembang untuk mengambil status file. Untuk daftar lengkapnya, lihat referensi API.

Dalam artikel ini, metode berikut akan dibahas:

  • mip::FileHandler::GetFileStatus() fungsi statis
  • Objek FileStatus yang berisi pelabelan dan atau detail perlindungan file atau kontainer
  • IsProtected() Harta benda
  • IsLabeled() Harta benda
  • ContainsProtectedObject() Harta benda

Persyaratan

Membuat FileHandler untuk bekerja dengan file tertentu memerlukan:

  • Sebuah mipContext
  • Tidak diperlukan pembuatan sistem pengelola file

Mengambil status dari file

Untuk menggunakan mip::FileHandler::GetFileStatus() fungsi statis, pengembang harus meneruskan Jalur File atau Aliran File dan mipContext untuk menjalankan fungsi ini. Menjalankan fungsi ini tidak memerlukan pembuatan mesin file, autentikasi, atau koneksi ke internet. Fungsi ini sangat membantu untuk:

  • Mendapatkan status perlindungan file untuk skenario dekripsi sebelum membuat mesin. Mengetahui status perlindungan sebelumnya dapat memungkinkan pengembang untuk melewati overhead pembuatan mesin jika file sudah dilindungi
  • Mendapatkan status file yang mungkin sudah memiliki label sebelum membuat mesin untuk mencoba membaca label (penghemat waktu)
  • Mendapatkan status file MSG yang memiliki lampiran dan yang mungkin perlu diurai atau didekripsi bersama dengan file MSG itu sendiri

GetFileStatus() Mengembalikan fileStatus Objek dengan properti berikut:

  • IsProtected() Properti - mengembalikan nilai boolean - File tersebut dilindungi/dienkripsi
  • IsLabeled() Properti - mengembalikan bool - File diberi Label
  • ContainsProtectedObject() Properti - mengembalikan bool - File/Kontainer/Pesan berisi objek yang dilindungi.

Rekomendasinya adalah bahwa ketiga properti diperiksa karena file dapat memiliki dari nol hingga ketiga properti dan kombinasi di antaranya. Selain itu, karena GetFileStatus() fungsi tidak memerlukan autentikasi, atau mesin untuk mengeksekusi, IsProtected()metode , , IsLabeled()dan ContainsProtectedObject() mencerminkan apakah pelabelan atau perlindungan ada dalam file. Ini tidak memvalidasi apakah pelabelan dan atau perlindungan ada dalam penyewa atau dapat digunakan oleh pengguna. Validasi label dan atau perlindungan akan memerlukan melalui proses autentikasi dan pembuatan mesin untuk memvalidasi.

    if (options.count("getfilestatus")) {
      auto fileStatus = GetFileStatus(filePath, fileStream, mipContext);
      if (fileStatus->IsProtected()) {
        cout << "File is protected" << endl;
      } 
      if (fileStatus->IsLabeled()) {
        cout << "File is labeled" << endl;
      } 
      if (fileStatus->ContainsProtectedObjects()) {
        cout << "File contains protected objects" << endl;
      }    
      GetLabel(fileHandler);
      return EXIT_SUCCESS;
    }
    if (options.GetFileStatus) {
      var fileStatus = FileHandler.GetFileStatus(options.FilePath, mipContext);
      if (fileStatus.IsProtected()) {
        Console.WriteLine("The file is protected.");
      }
      if (fileStatus.IsLabeled()) {
        Console.WriteLine("The file is labeled.");
      }
      if (fileStatus.ContainsProtectedObjects()) {
        Console.WriteLine("The file contains protected objects.");
      }
      return true;
    }
 if (options.count("getfilestatus")) {
      auto fileStatus = GetFileStatus(filePath, fileStream, mipContext);
      if (fileStatus->IsProtected()) {
        cout << "File is protected" << endl;
      } 
      if (fileStatus->IsLabeled()) {
        cout << "File is labeled" << endl;
      } 
      if (fileStatus->ContainsProtectedObjects()) {
        cout << "File contains protected objects" << endl;
      }    
      GetLabel(fileHandler);
      return EXIT_SUCCESS;
    }