Microsoft Information Protection SDK: capturar el estado de un archivo

En la API de archivos del SDK de MIP, la función estática permite al desarrollador capturar el estado de un archivo sin el requisito de crear un objeto de motor de archivo, autenticación e mip::FileHandler::GetFileStatus() incluso conectividad. Todo lo que se requiere es el nombre de archivo y la creación de mipContext junto con una ruta de acceso de archivo y una transmisión.

Tipos de archivo compatibles

  • Office archivos basados en OCP (Office 2010 y versiones posteriores)
  • Formatos de Office archivos heredados (Office 2007)
  • PDF
  • Compatibilidad con PFILE genérico
  • Archivos compatibles con Adobe XMP
  • Correo electrónico : . Formato MSG

Función GetFileStatus()

mip::FileHandler::GetFileStatus() permite al desarrollador capturar el estado de un archivo. Para obtener la lista completa, consulte la referencia de la API.

En este artículo, se tratarán los siguientes métodos:

  • mip::FileHandler::GetFileStatus() función estática
  • Objeto FileStatus que contiene detalles de etiquetado o protección de un archivo o contenedor
  • IsProtected() Propiedad
  • IsLabeled() Propiedad
  • ContainsProtectedObject() Propiedad

Requisitos

Crear una FileHandler para trabajar con un archivo específico requiere:

  • A mipContext
  • No es necesario crear un motor de archivos

Capturar el estado de un archivo

Para usar la función estática, el desarrollador tendrá que pasar una ruta de acceso de archivo o una secuencia de archivos y mip::FileHandler::GetFileStatus() mipContext para ejecutar esta función. Ejecutar esta función no requiere la creación de un motor de archivos, una autenticación o una conexión a Internet. Esta función es especialmente útil para:

  • Obtener el estado de protección de un archivo para escenarios de descifrado antes de crear un motor. Conocer el estado de protección con antelación puede permitir al desarrollador omitir la sobrecarga de creación de un motor si el archivo ya está protegido
  • Obtener el estado de un archivo que puede que ya tenga una etiqueta antes de crear un motor para intentar leer la etiqueta (ahorro de tiempo)
  • Obtener el estado de un archivo MSG que tiene datos adjuntos y que es posible que deba analizarse o descifrarse junto con el propio archivo MSG

Devuelve GetFileStatus() un objeto con las siguientes fileStatus propiedades:

  • IsProtected() Propiedad : devuelve un bool: el archivo está protegido o cifrado
  • IsLabeled() Propiedad : devuelve un bool: el archivo está etiquetado
  • ContainsProtectedObject() Propiedad : devuelve un bool: el archivo/contenedor/mensaje contiene un objeto protegido.

La recomendación es que las tres propiedades se interrogan como un archivo puede tener cero a las tres propiedades y permutaciones entre. Además, como la función no requiere autenticación o un motor para ejecutar, los métodos y y y reflejan si el etiquetado o la protección están presentes GetFileStatus()IsProtected() en un IsLabeled()ContainsProtectedObject() archivo. No se valida si el etiquetado y la protección existe dentro de un espacio empresarial o si un usuario puede usarlo. La validación de la etiqueta y la protección requeriría pasar por el proceso de autenticación y creación del motor para validarlo.

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