Microsoft Information Protection SDK — pobieranie stanu pliku

W interfejsie API plików SDK protokołu MIP funkcja statyczna umożliwia deweloperowi pobieranie stanu pliku bez konieczności tworzenia obiektu aparatu plików, uwierzytelniania, a nawet mip::FileHandler::GetFileStatus() łączności. Wymagane jest tylko nazwa pliku i utworzenie tekstu mipContext wraz ze ścieżką i strumieniem pliku.

Obsługiwane typy plików

  • Office formaty plików oparte na OCP (Office 2010 i nowsze)
  • Starsze Office plików (Office 2007)
  • PDF
  • Ogólna obsługa plików PFILE
  • Pliki, które obsługują adobe XMP
  • Poczta e-mail — . MSG Format

Funkcja GetFileStatus()

mip::FileHandler::GetFileStatus() umożliwia deweloperowi pobieranie informacji o stanie pliku. Aby zapoznać się z pełną listą, zapoznaj się z dokumentacja interfejsu API.

W tym artykule zostaną uwzględnione następujące metody:

  • mip::FileHandler::GetFileStatus() funkcja statyczna
  • Obiekt FileStatus zawierający etykiety i szczegóły ochrony pliku lub kontenera
  • IsProtected() Właściwość
  • IsLabeled() Właściwość
  • ContainsProtectedObject() Właściwość

Wymagania

Do utworzenia FileHandler pliku do pracy z określonym plikiem są wymagane:

  • A mipContext
  • Nie jest wymagane tworzenie aparatów plików

Pobieranie stanu pliku

Aby użyć funkcji statycznej, deweloper musi przekazać ścieżkę pliku lub strumień pliku i mip::FileHandler::GetFileStatus() mipContext, aby wykonać tę funkcję. Wykonanie tej funkcji nie wymaga utworzenia aparatu plików, uwierzytelniania ani połączenia z Internetem. Ta funkcja jest szczególnie przydatna w przypadku:

  • Uzyskiwanie stanu ochrony pliku do odszyfrowywania scenariuszy przed utworzeniem aparatu. Znajomość stanu ochrony z wyprzedzeniem może umożliwić deweloperowi pominięcie narzutu związanego z tworzeniem aparatu, jeśli plik jest już chroniony
  • Uzyskiwanie stanu pliku, który może już mieć etykietę przed utworzeniem aparatu w celu próby odczytania tej etykiety (oszczędność czasu)
  • Uzyskiwanie stanu pliku MSG, który ma załączniki i który może wymagać analizy lub odszyfrowania wraz z samym plikiem MSG

Zwraca GetFileStatus() obiekt o następujących fileStatus właściwościach:

  • IsProtected() Właściwość — zwraca wartość logiczną — plik jest chroniony/zaszyfrowany
  • IsLabeled() Właściwość — zwraca wartość logiczną — plik ma etykietę
  • ContainsProtectedObject() Właściwość — zwraca wartość logiczną — plik/kontener/wiadomość zawiera obiekt chroniony.

Zalecenie polega na tym, że wszystkie trzy właściwości są wzajemnie ze sobą połączone, ponieważ plik może mieć wartość zero do wszystkich trzech właściwości i permutacji między nimi. Ponadto, ponieważ funkcja nie wymaga uwierzytelniania ani aparatu do wykonania, metoda , i odzwierciedla, czy w pliku istnieje znakowanie lub GetFileStatus()IsProtected()IsLabeled()ContainsProtectedObject() ochrona. Nie sprawdza ono, czy etykiety i czy ochrona istnieje w dzierżawie, czy jest możliwe do użycia przez użytkownika. Sprawdzanie poprawności etykiety i ochrony wymagałoby przejść przez proces uwierzytelniania i tworzenia aparatu w celu weryfikacji.

    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;
    }