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.
Le profil est la classe racine de toutes les opérations dans le kit de développement logiciel (SDK) MIP. Avant d’utiliser n’importe quelle fonctionnalité du Kit de développement logiciel (SDK) de fichier, créez un FileProfile. Le profil ou d’autres objets ajoutés au profil effectuent toutes les opérations futures.
Remplissez les conditions préalables au code suivantes avant d’instancier un profil :
-
MipContext : créez
MipContextet stockez-le dans un objet accessible à l’objetmip::FileProfile. -
Délégué de consentement :
ConsentDelegateImplimplémentemip::ConsentDelegate. - Inscription de l’application : inscrivez l’application dans Microsoft Entra ID et codez en dur l’ID client dans les fichiers d’application ou de configuration.
-
Observateur de profil de fichier : implémentez une classe qui hérite
mip::FileProfile::Observer.
Charger un profil
Après avoir défini ProfileObserver et ConsentDelegateImpl, vous pouvez instancier mip::FileProfile. La création de l’objet mip::FileProfile nécessite mip::MipContext et mip::FileProfile::Settingsstocke toutes les informations de paramètres sur le FileProfile.
Paramètres de FileProfile::Settings
Le FileProfile::Settings constructeur accepte les cinq paramètres suivants :
-
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é. -
std::shared_ptr<mip::ConsentDelegate>: pointeur partagé de classemip::ConsentDelegate. -
std::shared_ptr<mip::FileProfile::Observer> observer: pointeur partagé vers l’implémentation du profilObserver(dansPolicyProfile,ProtectionProfileetFileProfile).
Les 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);
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
Lire/écrire les paramètres du profil depuis le chemin de stockage sur le disque
L’extrait de code suivant indique à stocker FileProfile toutes les données d’état de l’application dans ./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
Charger le profil
Une fois que vous avez utilisé l’une ou l’autre approche précédente, utilisez le modèle promesse/futur pour charger le FileProfile.
auto profilePromise = std::make_shared<std::promise<std::shared_ptr<FileProfile>>>();
auto profileFuture = profilePromise->get_future();
FileProfile::LoadAsync(profileSettings, profilePromise);
Si l’application charge correctement un profil, ProfileObserver::OnLoadSuccess l’implémentation de mip::FileProfile::Observer::OnLoadSuccess, est appelée. Le Kit de développement logiciel (SDK) transmet l’objet ou le pointeur d’exception résultant, ainsi que le contexte, en tant que paramètres à la fonction. 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 à l’objet FileProfile transmis pour le premier paramètre. Lorsque la fonction principale utilise Future.get(), elle peut stocker le résultat dans un nouvel objet.
//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);
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();
}
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.