Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Profilen är rotklassen för alla åtgärder i MIP SDK. Innan du använder någon File SDK-funktion skapar du en FileProfile. Profilen eller andra objekt som läggs till i profilen utför alla framtida åtgärder.
Uppfylla följande kodkrav innan du instansierar en profil:
-
MipContext: Skapa
MipContextoch lagra den i ett objekt som är tillgängligt förmip::FileProfileobjektet. -
Medgivandedelegat:
ConsentDelegateImplimplementerarmip::ConsentDelegate. - Programregistrering: Registrera programmet i Microsoft Entra ID och hårdkoda klient-ID:t i programmet eller konfigurationsfilerna.
-
Filprofilsobservatör: Implementera en klass som ärver
mip::FileProfile::Observer.
Ladda en profil
När du har definierat ProfileObserver och ConsentDelegateImplkan du instansiera mip::FileProfile. För att skapa mip::FileProfile objektet krävs mip::MipContext och mip::FileProfile::Settings, som lagrar all inställningsinformation om FileProfile.
FileProfile::Inställningsparametrar
Konstruktorn FileProfile::Settings accepterar följande fem parametrar:
-
std::shared_ptr<MipContext>: Objektetmip::MipContextsom initierades för att lagra programinformation, tillståndssökväg osv. -
mip::CacheStorageType: Definierar hur du lagrar tillstånd: I minne, på disk eller på disk och krypterad. -
std::shared_ptr<mip::ConsentDelegate>: En delad pekare för klassenmip::ConsentDelegate. -
std::shared_ptr<mip::FileProfile::Observer> observer: En delad pekare till profilimplementeringenObserver(iPolicyProfile,ProtectionProfileochFileProfile).
Följande exempel visar hur du skapar objektet profileSettings med lokal lagring för tillståndslagring eller enbart i minnet.
Lagra endast tillstånd i minnet
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
Läs och skriv profilinställningar från lagringsväg på disk
Följande kodfragment instruerar FileProfile att lagra alla apptillståndsdata i ./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
Ladda profilen
När du har använt någon av tidigare metoder använder du promise/future-mönstret för att läsa in FileProfile.
auto profilePromise = std::make_shared<std::promise<std::shared_ptr<FileProfile>>>();
auto profileFuture = profilePromise->get_future();
FileProfile::LoadAsync(profileSettings, profilePromise);
Om programmet läser in en profil ProfileObserver::OnLoadSuccessanropas implementeringen av mip::FileProfile::Observer::OnLoadSuccess. SDK:t skickar det resulterande objektet eller undantagspekaren och kontexten som parametrar till funktionen. Kontexten är en pekare till std::promise, som skapades för att hantera den asynkrona åtgärden. Funktionen anger värdet för löftet till FileProfile-objektet som skickades in för den första parametern. När huvudfunktionen använder Future.get()kan den lagra resultatet i ett nytt objekt.
//get the future value and store in profile.
auto profile = profileFuture.get();
Sammanfoga
När du har implementerat observatörerna och autentiseringsdelegaten kan du läsa in en profil fullständigt. Följande kodfragment förutsätter att alla nödvändiga huvuden redan ingår.
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();
}
Koden läser in profilen och lagrar den i objektet med namnet profile.
Nästa steg
Nu när profilen har lagts till är nästa steg att lägga till en motor i profilen.