Microsoft Information Protection SDK — koncepcje profilu zestawu SDK zasad

Musi mip::Profile zostać załadowany, aby można było wykonać dowolne operacje zestawu Sdk zasad.

Dwa poniższe przykłady pokazują, jak utworzyć obiekt profileSettings przy użyciu magazynu lokalnego na przykład do przechowywania informacji o stanie oraz tylko w pamięci.

Ładowanie profilu

Teraz, gdy MipContext i ProfileObserver zostaną zdefiniowane, użyjemy ich do wystąpienia mip::PolicyProfile . Do utworzenia mip::PolicyProfile obiektu są wymagane i mip::PolicyProfile::Settingsmip::MipContext .

Profil::parametry Ustawienia danych

Konstruktor PolicyProfile::Settings akceptuje cztery parametry wymienione poniżej:

  • const std::shared_ptr<MipContext>: mip::MipContext Obiekt, który został zainicjowany w celu przechowywania informacji o aplikacji, ścieżka województwa itp.
  • mip::CacheStorageType: Definiuje sposób przechowywania stanu: W pamięci, na dysku lub na dysku i zaszyfrowany. Aby uzyskać więcej szczegółowych informacji, zobacz pojęcia dotyczące przechowywania w pamięci podręcznej.
  • std::shared_ptr<mip::PolicyProfile::Observer> observer: Udostępniony wskaźnik implementacji Observer profilu (w PolicyProfile , i ProtectionProfileFileProfile ).

Dwa poniższe przykłady pokazują, jak utworzyć obiekt profileSettings przy użyciu magazynu lokalnego na przykład do przechowywania informacji o stanie oraz tylko w pamięci.

Stan przechowywania tylko w pamięci

mip::ApplicationInfo appInfo {clientId, "APP NAME", "1.2.3" };

std::shared_ptr<mip::MipConfiguration> mipConfiguration = std::make_shared<mip::MipConfiguration>(mAppInfo,
				                                                                                  "mip_data",
                                                                                        		  mip::LogLevel::Trace,
                                                                                                  false);

std::shared_ptr<mip::MipContext> mMipContext = mip::MipContext::Create(mipConfiguration);

PolicyProfile::Settings profileSettings(
    mMipContext,                                  // mipContext object
    mip::CacheStorageType::InMemory,              // use in memory storage
    std::make_shared<PolicyProfileObserverImpl>()); // new protection profile observer

Ustawienia profilu odczytu/zapisu ze ścieżki magazynu na dysku

mip::ApplicationInfo appInfo {clientId, "APP NAME", "1.2.3" };

std::shared_ptr<mip::MipConfiguration> mipConfiguration = std::make_shared<mip::MipConfiguration>(mAppInfo,
			                                                                                      "mip_data",
                                                                                       			  mip::LogLevel::Trace,
                                                                                                  false);

std::shared_ptr<mip::MipContext> mMipContext = mip::MipContext::Create(mipConfiguration);

PolicyProfile::Settings profileSettings(
    mipContext,                                    // mipContext object
    mip::CacheStorageType::OnDisk,                 // use on disk storage
    std::make_shared<PolicyProfileObserverImpl>());  // new protection profile observer

Następnie załaduj przycisk . Profile

auto profilePromise = std::make_shared<std::promise<std::shared_ptr<Profile>>>();
auto profileFuture = profilePromise->get_future();
Profile::LoadAsync(profileSettings, profilePromise);

Jeśli profil został pomyślnie załadowany, o implementacji tego profilu ProfileObserver::OnLoadSuccessmip::Profile::Observer::OnLoadSuccess zostanie powiadomiona nasza implementacja. Obiekt wynikowy, w tym przypadku obiekt , jak również kontekst, jest przekazywany jako parametry mip::Profile do funkcji zdjęcia.

Kontekst jest wskaźnikiem utworzonym do obsługi operacji synchronizacji. Funkcja po prostu ustawia wartość obietnicy dla obiektu Profile, który został przekazany dla pierwszego parametru. Gdy jest używana główna funkcja, wynik może być przechowywany Future.get() w nowym obiekcie w wątku połączenia.

//get the future value and store in profile.
auto profile = profileFuture.get();

Umieszczanie go na nim

Po pełnym wdrożeniu użytkowników i pełnomocnika uwierzytelniania można teraz całkowicie załadować profil. W poniższej wycinka kodu założono, że wszystkie niezbędne nagłówki są już uwzględnione.

int main()
{
    const string userName = "MyTestUser@consoto.com";
    const string password = "P@ssw0rd!";
    const string clientId = "MyClientId";

    mip::ApplicationInfo appInfo {clientId, "APP NAME", "1.2.3" };
 
    std::shared_ptr<mip::MipConfiguration> mipConfiguration = std::make_shared<mip::MipConfiguration>(mAppInfo,
				                                                                                       "mip_data",
                                                                                        			   mip::LogLevel::Trace,
                                                                                                       false);

    std::shared_ptr<mip::MipContext> mMipContext = mip::MipContext::Create(mipConfiguration);

    PolicyProfile::Settings profileSettings(
        mMipContext,                                    // mipContext object
        mip::CacheStorageType::OnDisk,                 // use on disk storage
        std::make_shared<PolicyProfileObserverImpl>());  // new protection profile observer

    auto profilePromise = std::make_shared<promise<shared_ptr<PolicyProfile>>>();
    auto profileFuture = profilePromise->get_future();
    Profile::LoadAsync(profileSettings, profilePromise);
    auto profile = profileFuture.get();
}

Wynikiem jest to, że pomyślnie załadowaliśmy profil i przechowywano go w obiekcie o nazwie profile .

Następne kroki

Po dodaniu profilu następnym krokiem jest dodanie aparatu do profilu.

Pojęcia dotyczące aparatu zasad