Aracılığıyla paylaş


Microsoft Information Protection SDK ' sı - Dosyanın durumunu getirme

MIP SDK Dosya API'sinde statik işlev, mip::FileHandler::GetFileStatus() geliştiricinin Dosya Altyapısı Nesnesi, kimlik doğrulaması ve hatta bağlantı oluşturma gereksinimi olmadan dosyanın durumunu getirmesine olanak tanır. Tek gereken dosya adı ve bir dosya yolu ve akışıyla birlikte mipContext'in oluşturulmasıdır.

Desteklenen dosya türleri

  • OCP'ye Dayalı Office Dosya Biçimleri (Office 2010 ve üzeri)
  • Eski Office Dosya Biçimleri (Office 2007)
  • PDF
  • Genel PFILE desteği
  • Adobe XMP'i destekleyen dosyalar
  • E-posta - .MSG biçimi

GetFileStatus() İşlevi

mip::FileHandler::GetFileStatus() geliştiricinin dosyanın durumunu getirmesine izin verir. Tam liste için API referansına başvurun.

Bu makalede aşağıdaki yöntemler ele alınacaktır:

  • mip::FileHandler::GetFileStatus() statik işlev
  • Dosya veya kapsayıcının etiketleme ve koruma ayrıntılarını içeren FileStatus nesnesi
  • IsProtected() Mülk
  • IsLabeled() Mülk
  • ContainsProtectedObject() Mülk

Gereksinimler

Belirli bir FileHandler dosyayla çalışmak için şunlar gereklidir:

  • mipContext
  • Dosya işleyicisi oluşturulması gerekmez

Dosyanın durumunu getirme

Statik işlevi kullanmak için geliştirici, işlevi çalıştırmak üzere bir Dosya Yolu veya Dosya Akışı ve mipContext aktarmalıdır. Bu işlevin yürütülmesi için dosya altyapısı, kimlik doğrulaması veya İnternet bağlantısı oluşturulması gerekmez. Bu işlev özellikle şunlar için yararlıdır:

  • Altyapı oluşturmadan önce şifre çözme senaryoları için bir dosyanın koruma durumunu alma. Koruma durumunu önceden bilmek, dosya zaten korunuyorsa geliştiricinin altyapı oluşturma ek yükünü atlamasına izin verebilir
  • Etiketi okumayı deneyecek bir altyapı oluşturmadan önce zaten etiketi olan bir dosyanın durumunu alma (zaman kazandırıcı)
  • Ekleri olan ve MSG dosyasının kendisiyle birlikte ayrıştırılması veya şifresinin çözülmesi gerekebilecek bir MSG dosyasının durumunu alma

aşağıdaki GetFileStatus() özelliklere sahip bir fileStatus Nesne döndürür:

  • IsProtected() Özellik - bool döndürür - Dosya korumalı/şifrelenmiş
  • IsLabeled() Özellik - boolean değer döndürür - Dosya etiketlenmiştir
  • ContainsProtectedObject() Özellik - bool döndürür - Dosya/Kapsayıcı/İleti korumalı nesne içeriyor.

Öneri, bir dosyanın sıfırdan üç özelliğe kadar sahip olabileceğini ve aradaki permütasyonların hepsinin sorgulanması gerektiğini belirtmektedir. Ayrıca, işlev kimlik doğrulaması veya yürütülecek bir altyapı gerektirmediğinden GetFileStatus() , IsProtected(), IsLabeled()ve ContainsProtectedObject() yöntemleri bir dosyada etiketleme veya koruma olup olmadığını yansıtır. Etiketlemenin ve veya korumanın bir kiracı içinde mevcut olup olmadığını veya bir kullanıcı tarafından kullanılıp kullanılamadığı doğrulanmaz. Etiketin veya korumanın doğrulanması için kimlik doğrulama ve motor oluşturma işlemlerinin yapılması gereklidir.

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