Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Následující dva příklady ukazují, jak vytvořit objekt profileSettings pomocí místního úložiště pro úložiště stavu nebo pouze paměti.
Načtení profilu
Teď je ProtectionProfileObserverImpl definován, použijte ji k vytvoření instance mip::ProtectionProfile. Vytvoření objektu mip::ProtectionProfile vyžaduje mip::ProtectionProfile::Settings.
ProtectionProfile::Settings parametry
-
std::shared_ptr<MipContext>: Objektmip::MipContextinicializovaný pro ukládání informací o aplikaci, cesty stavu a dalších nastavení. -
mip::CacheStorageType: Definuje, jak ukládat stav: v paměti, na disku nebo na disku v zašifrované podobě. -
std::shared_ptr<mip::ConsentDelegate>: Sdílený ukazatel třídymip::ConsentDelegate. -
std::shared_ptr<mip::ProtectionProfile::Observer> observer: Sdílený ukazatel na implementaci profiluObserver(vPolicyProfile,ProtectionProfileaFileProfile).
Následující dva příklady ukazují, jak vytvořit objekt profileSettings pomocí místního úložiště pro úložiště stavu nebo pouze paměti.
Uložení stavu pouze v paměti
mip::ApplicationInfo appInfo {clientId, "APP NAME", "1.2.3" };
std::shared_ptr<mip::MipConfiguration> mipConfiguration = std::make_shared<mip::MipConfiguration>(appInfo,
"mip_data",
mip::LogLevel::Trace,
false, mip::CacheStorageType::OnDisk);
std::shared_ptr<mip::MipContext> mMipContext = mip::MipContext::Create(mipConfiguration);
ProtectionProfile::Settings profileSettings(
mMipContext, // mipContext object
mip::CacheStorageType::InMemory, // use in memory storage
std::make_shared<ConsentDelegateImpl>(), // new consent delegate
std::make_shared<ProtectionProfileObserverImpl>()); // new protection profile observer
Čtení a zápis nastavení profilu z úložné cesty na disku
mip::ApplicationInfo appInfo {clientId, "APP NAME", "1.2.3" };
std::shared_ptr<mip::MipConfiguration> mipConfiguration = std::make_shared<mip::MipConfiguration>(appInfo,
"mip_data",
mip::LogLevel::Trace,
false, mip::CacheStorageType::OnDisk);
std::shared_ptr<mip::MipContext> mMipContext = mip::MipContext::Create(mipConfiguration);
ProtectionProfile::Settings profileSettings(
mMipContext, // mipContext object
mip::CacheStorageType::OnDisk, // use on disk storage
std::make_shared<ConsentDelegateImpl>(), // new consent delegate
std::make_shared<ProtectionProfileObserverImpl>()); // new protection profile
Dále použijte vzor promise/future k načtení ProtectionProfile.
auto profilePromise = std::make_shared<std::promise<std::shared_ptr<ProtectionProfile>>>();
auto profileFuture = profilePromise->get_future();
ProtectionProfile::LoadAsync(profileSettings, profilePromise);
Pokud se profil úspěšně načte, SDK zavolá ProtectionProfileObserverImpl::OnLoadSuccess, implementaci mip::ProtectionProfile::Observer::OnLoadSuccess. Sada SDK předá výsledný objekt nebo ukazatel výjimky a kontext jako parametry funkci. Kontext je ukazatel na std::promise, který byl vytvořen ke zpracování asynchronní operace. Funkce nastaví hodnotu příslibu na objekt ProtectionProfile (kontext). Při použití Future.get()hlavní funkce můžete výsledek uložit do nového objektu.
//get the future value and store in profile.
auto profile = profileFuture.get();
Dáváme to dohromady
Po implementaci pozorovatelů a delegáta autentizace můžete načíst profil v plném rozsahu. Následující fragment kódu předpokládá, že jsou už zahrnuté všechny potřebné hlavičky.
int main()
{
const string userName = "MyTestUser@contoso.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>(appInfo,
"mip_data",
mip::LogLevel::Trace,
false, mip::CacheStorageType::OnDisk);
std::shared_ptr<mip::MipContext> mMipContext = mip::MipContext::Create(mipConfiguration);
ProtectionProfile::Settings profileSettings(
mMipContext, // mipContext object
mip::CacheStorageType::OnDisk, // use on disk storage
std::make_shared<ConsentDelegateImpl>(), // new consent delegate
std::make_shared<ProfileObserver>()); // new protection profile observer
auto profilePromise = std::make_shared<promise<shared_ptr<ProtectionProfile>>>();
auto profileFuture = profilePromise->get_future();
ProtectionProfile::LoadAsync(profileSettings, profilePromise);
auto profile = profileFuture.get();
}
Kód načte profil a uloží ho do objektu s názvem profile.
Další kroky
Nyní, když jste načetli profil, dalším krokem je přidat do profilu engine.
- Prozkoumejte ukázku sady MIP Protection SDK C++ na GitHub.