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::MipContextObiekt, 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 implementacjiObserverprofilu (wPolicyProfile, iProtectionProfileFileProfile).
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.