Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Chargez mip::Profile avant d’effectuer toute opération du SDK Policy.
Les deux exemples suivants montrent comment créer l’objet profileSettings à l’aide du stockage local pour le stockage d’état ou en mémoire uniquement.
Charger un profil
Après avoir défini MipContext et ProfileObserver, utilisez-les pour instancier mip::PolicyProfile. La création de l’objet mip::PolicyProfile nécessite mip::PolicyProfile::Settings et mip::MipContext.
Profil : paramètres des réglages
Le PolicyProfile::Settings constructeur accepte les quatre paramètres suivants :
-
const std::shared_ptr<MipContext>: L’objetmip::MipContextinitialisé pour stocker les informations de l’application, le chemin d’état, etc. -
mip::CacheStorageType: Définit comment stocker l’état : en mémoire, sur le disque ou sur le disque et chiffré. Pour plus d’informations, consultez les concepts de stockage du cache. -
std::shared_ptr<mip::PolicyProfile::Observer> observer: pointeur partagé vers l’implémentation du profilObserver(dansPolicyProfile,ProtectionProfileetFileProfile).
Les deux exemples suivants montrent comment créer l’objet profileSettings à l’aide du stockage local pour le stockage d’état ou en mémoire uniquement.
Stocker l’état en mémoire uniquement
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
Lire/écrire les paramètres du profil à partir du chemin d'accès au stockage sur le disque
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
Ensuite, utilisez le modèle promise/future pour charger le fichier Profile
auto profilePromise = std::make_shared<std::promise<std::shared_ptr<Profile>>>();
auto profileFuture = profilePromise->get_future();
Profile::LoadAsync(profileSettings, profilePromise);
Si l’application charge correctement un profil, ProfileObserver::OnLoadSuccess, l’implémentation de mip::Profile::Observer::OnLoadSuccess, est notifiée. Le SDK transmet l’objet résultant, dans ce cas un mip::Profile, ainsi que le contexte comme paramètres de la fonction d’observation.
Le contexte est un pointeur vers le std::promise créé pour gérer l’opération asynchrone. La fonction définit la valeur de la promesse sur l’objet Profile transmis comme premier paramètre. Lorsque la fonction principale utilise Future.get(), elle peut stocker le résultat dans un nouvel objet dans le thread appelant.
//get the future value and store in profile.
auto profile = profileFuture.get();
Synthèse
Après avoir implémenté les observateurs et le délégué d’authentification, vous pouvez charger entièrement un profil. L’extrait de code suivant suppose que tous les en-têtes nécessaires sont déjà inclus.
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);
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();
}
Le code charge le profil et le stocke dans l’objet appelé profile.
Étapes suivantes
Maintenant que le profil est ajouté, l’étape suivante consiste à ajouter un moteur au profil.