Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het profiel is de hoofdklasse voor alle bewerkingen in de MIP SDK. Voordat u een File SDK-functionaliteit gebruikt, maakt u een FileProfile. Het profiel of andere objecten die aan het profiel zijn toegevoegd , voeren alle toekomstige bewerkingen uit.
Voldoen aan de volgende codevereisten voordat u een profiel instantieert:
-
MipContext: Maak
MipContexten sla het op in een object dat toegankelijk is voor het objectmip::FileProfile. -
Gedelegeerde voor toestemming:
ConsentDelegateImplimplementeertmip::ConsentDelegate. - Toepassingsregistratie: registreer de toepassing in Microsoft Entra ID en codeer de client-id in de toepassings- of configuratiebestanden.
-
Waarnemer van bestandsprofiel: implementeer een klasse die overneemt
mip::FileProfile::Observer.
Een profiel laden
Nadat u hebt gedefinieerd ProfileObserver en ConsentDelegateImpl, kunt u instantiëren mip::FileProfile. Het maken van het mip::FileProfile-object vereist mip::MipContext en mip::FileProfile::Settings, dat alle informatie over de instellingen van de FileProfile opslaat.
FileProfile::Settings parameters
De FileProfile::Settings constructor accepteert de volgende vijf parameters:
-
std::shared_ptr<MipContext>: Hetmip::MipContextobject dat is geïnitialiseerd voor het opslaan van toepassingsgegevens, het statuspad, enzovoort. -
mip::CacheStorageType: Definieert hoe de status moet worden opgeslagen: In het geheugen, op schijf of op schijf en versleuteld. -
std::shared_ptr<mip::ConsentDelegate>: Een gedeelde aanwijzer van klassemip::ConsentDelegate. -
std::shared_ptr<mip::FileProfile::Observer> observer: Een gedeelde aanwijzer naar de profiel-implementatieObserver(inPolicyProfile,ProtectionProfileenFileProfile).
In de volgende voorbeelden ziet u hoe u het profileSettings object maakt met behulp van lokale opslag voor statusopslag of alleen in het geheugen.
Alleen de status opslaan in het geheugen
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
Profielinstellingen lezen/schrijven vanuit het opslagpad op schijf
Het volgende codefragment geeft de FileProfile opdracht om alle app-statusgegevens op te slaan in ./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
Het profiel laden
Nadat u een van beide vorige benaderingen hebt gebruikt, gebruikt u het promise/future-patroon om de FileProfile te laden.
auto profilePromise = std::make_shared<std::promise<std::shared_ptr<FileProfile>>>();
auto profileFuture = profilePromise->get_future();
FileProfile::LoadAsync(profileSettings, profilePromise);
Als de applicatie met succes een profiel laadt, wordt ProfileObserver::OnLoadSuccess, de implementatie van mip::FileProfile::Observer::OnLoadSuccess, aangeroepen. De SDK geeft het resulterende object of de uitzonderingswijzer en de context als parameters door aan de functie. De context is een verwijzing naar de std::promise die is gemaakt om de asynchrone bewerking af te handelen. De functie stelt de waarde van de promise in voor het FileProfile-object dat is doorgegeven voor de eerste parameter. Wanneer de hoofdfunctie wordt gebruikt Future.get(), kan het resultaat worden opgeslagen in een nieuw object.
//get the future value and store in profile.
auto profile = profileFuture.get();
Alles samenbrengen
Nadat u de observers en authenticatiedelegate hebt geïmplementeerd, kunt u een profiel volledig laden. In het volgende codefragment wordt ervan uitgegaan dat alle benodigde headers al zijn opgenomen.
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();
}
De code laadt het profiel en slaat het op in het object met de naam profile.
Volgende stappen
Nu het profiel is toegevoegd, is de volgende stap om een motor aan het profiel toe te voegen.