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.
Profil je kořenová třída pro všechny operace v sadě Software Development Kit (SDK) MIP. Před použitím jakékoli funkce sady File SDK vytvořte FileProfile. Profil nebo jiné objekty přidané do profilu provádějí všechny budoucí operace.
Před vytvořením instance profilu splníte následující požadavky na kód:
-
MipContext: Vytvořte
MipContexta uložte jej v objektu, který je přístupný objektumip::FileProfile. -
Delegát souhlasu:
ConsentDelegateImplimplementujemip::ConsentDelegate. - Registrace aplikace: Zaregistrujte aplikaci v Microsoft Entra ID a pevně zakódujte ID klienta do aplikace nebo konfiguračních souborů.
-
Pozorovatel profilu souboru: Implementujte třídu, která dědí
mip::FileProfile::Observer.
Načtení profilu
Po definování ProfileObserver a ConsentDelegateImplmůžete vytvořit instanci mip::FileProfile. Vytvoření objektu mip::FileProfile vyžaduje mip::MipContext a mip::FileProfile::Settings, který ukládá všechny informace o nastavení o objektu FileProfile.
FileProfile::Settings parametry
Konstruktor FileProfile::Settings přijímá následující pět parametrů:
-
std::shared_ptr<MipContext>: Objektmip::MipContextinicializovaný pro uložení informací o aplikaci, cesty stavu atd. -
mip::CacheStorageType: Definuje, jak uložit stav: V paměti, na disku nebo na disku a zašifrováno. -
std::shared_ptr<mip::ConsentDelegate>: Sdílený ukazatel třídymip::ConsentDelegate. -
std::shared_ptr<mip::FileProfile::Observer> observer: Sdílený ukazatel na implementaci profiluObserver(vPolicyProfile,ProtectionProfile, aFileProfile).
Následující příklady ukazují, jak vytvořit profileSettings objekt pomocí místního úložiště pro úložiště stavu nebo pouze v 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>(mAppInfo,
"mip_data",
mip::LogLevel::Trace,
false);
std::shared_ptr<mip::MipContext> mMipContext = mip::MipContext::Create(mipConfiguration);
FileProfile::Settings profileSettings(
mMipContext, // mipContext object
mip::CacheStorageType::InMemory, // use in memory storage
std::make_shared<ConsentDelegateImpl>(), // new consent delegate
std::make_shared<FileProfileObserverImpl>()); // new protection profile observer
Načíst/uložit nastavení profilu z úložné cesty na disku
Následující fragment kódu dává pokyn FileProfile k uložení všech dat o stavu aplikace do ./mip_app_data.
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);
FileProfile::Settings profileSettings(
mMipContext, // mipContext object
mip::CacheStorageType::OnDisk, // use on disk storage
std::make_shared<ConsentDelegateImpl>(), // new consent delegate
std::make_shared<FileProfileObserverImpl>()); // new protection profile observer
Načtení profilu
Po použití kteréhokoli z předchozích postupů načtěte FileProfile pomocí vzorce promise/future.
auto profilePromise = std::make_shared<std::promise<std::shared_ptr<FileProfile>>>();
auto profileFuture = profilePromise->get_future();
FileProfile::LoadAsync(profileSettings, profilePromise);
Pokud aplikace úspěšně načte profil, ProfileObserver::OnLoadSuccess je zavolána implementace mip::FileProfile::Observer::OnLoadSuccess. Sada SDK předá výsledný objekt nebo ukazatel výjimky a kontext jako parametry do funkce. Kontext je ukazatel na std::promise, který byl vytvořen ke zpracování asynchronní operace. Funkce nastaví hodnotu promise na objekt FileProfile předaný jako první parametr. Při použití Future.get()hlavní funkce může 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>(mAppInfo,
"mip_data",
mip::LogLevel::Trace,
false);
std::shared_ptr<mip::MipContext> mMipContext = mip::MipContext::Create(mipConfiguration);
FileProfile::Settings profileSettings(
mMipContext, // MipContext object
mip::CacheStorageType::OnDisk, // use on disk storage
std::make_shared<ConsentDelegateImpl>(), // new consent delegate
std::make_shared<FileProfileObserverImpl>()); // new file profile observer
auto profilePromise = std::make_shared<promise<shared_ptr<FileProfile>>>();
auto profileFuture = profilePromise->get_future();
FileProfile::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ž byl profil přidán, dalším krokem je přidat do profilu engine.