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.
De mip::FileEngine in de MIP File SDK biedt een interface voor alle bewerkingen die namens een opgegeven identiteit worden uitgevoerd. Voeg één engine toe voor elke gebruiker die zich aanmeldt bij de toepassing. De engine voert alle bewerkingen uit in de context van die identiteit.
De FileEngine heeft twee hoofdtaken: labels weergeven voor een geverifieerde gebruiker en bestandshandlers aanmaken om bestandsbewerkingen uit te voeren namens de gebruiker.
mip::FileEngine-
ListSensitivityLabels(): Haalt de lijst met labels van de geladen engine op. -
CreateFileHandler(): Hiermee maakt u eenmip::FileHandlervoor een specifiek bestand of een specifieke stream.
Een bestandsengine toevoegen
Zoals wordt behandeld in profiel- en engineobjecten, kan een engine twee statussen hebben: CREATED of LOADED. Als het niet een van deze twee statussen is, bestaat het niet. Als u een status wilt maken en laden, maakt u één aanroep naar FileProfile::LoadAsync. Als de engine al in de cache bestaat, is deze LOADED. Als het niet bestaat, is het CREATED en LOADED.
CREATED impliceert dat de toepassing beschikt over alle informatie van de service die nodig is om de engine te laden.
LOADED impliceert dat alle gegevensstructuren die nodig zijn voor het gebruik van de engine in het geheugen aanwezig zijn.
Instellingen voor bestandsengine maken
Net als bij een profiel vereist de engine ook een instellingenobject. mip::FileEngine::Settings Dit object slaat de unieke engine-id, de mip::AuthDelegate implementatie, aanpasbare clientgegevens op voor foutopsporing of telemetrie, en optioneel de landinstelling.
Hier maken we een FileEngine::Settings object met de naam engineSettings met behulp van de identiteit van de toepassingsgebruiker.
FileEngine::Settings engineSettings(
mip::Identity(mUsername), // mip::Identity.
authDelegateImpl, // auth delegate object
"", // Client data. Customizable by developer, stored with engine.
"en-US", // Locale.
false); // Load sensitive information types for driving classification.
Stel bij het maken van engineSettings op deze manier ook expliciet een unieke engineId in:
engineSettings.SetEngineId(engineId);
Door de gebruikersnaam of e-mail te gebruiken, zorgt u ervoor dat dezelfde engine telkens wordt geladen wanneer de gebruiker de service of toepassing gebruikt.
Geldig is ook het verstrekken van een aangepaste engine-id:
FileEngine::Settings engineSettings(
"myEngineId", // string
authDelegateImpl, // auth delegate object
"", // Client data in string format. Customizable by developer, stored with engine.
"en-US", // Locale. Default is en-US
false); // Load sensitive information types for driving classification. Default is false.
Als best practice gebruikt u een eerste parameter, iddie de engine verbindt met de bijbehorende gebruiker. Een e-mailadres, UPN of Microsoft Entra object-GUID zorgt ervoor dat de id uniek is en kan worden geladen vanuit de lokale status zonder de service aan te roepen.
De bestandsengine toevoegen
Als u de engine wilt toevoegen, keert u terug naar het promise/future-patroon dat wordt gebruikt om het profiel te laden. In plaats van de belofte voor mip::FileProfilete maken, maakt u deze met behulp van mip::FileEngine.
//auto profile will be std::shared_ptr<mip::FileProfile>
auto profile = profileFuture.get();
// Instantiate the AuthDelegate implementation.
auto authDelegateImpl = std::make_shared<sample::auth::AuthDelegateImpl>(appInfo, userName, password);
//Create the FileEngine::Settings object
FileEngine::Settings engineSettings("UniqueID", authDelegateImpl, "");
//Create a promise for std::shared_ptr<mip::FileEngine>
auto enginePromise = std::make_shared<std::promise<std::shared_ptr<mip::FileEngine>>>();
//Instantiate the future from the promise
auto engineFuture = enginePromise->get_future();
//Add the engine using AddEngineAsync, passing in the engine settings and the promise
profile->AddEngineAsync(engineSettings, enginePromise);
//get the future value and store in std::shared_ptr<mip::FileEngine>
auto engine = engineFuture.get();
De code voegt de engine voor de geauthenticeerde gebruiker aan het profiel toe.
Vertrouwelijkheidslabels vermelden
Met behulp van de toegevoegde engine kunt u alle vertrouwelijkheidslabels weergeven die beschikbaar zijn voor de geverifieerde gebruiker door aan te roepen engine->ListSensitivityLabels().
ListSensitivityLabels() haalt de lijst met labels en kenmerken van deze labels voor een specifieke gebruiker van de service op. Het resultaat wordt opgeslagen in een vector van std::shared_ptr<mip::Label>.
Zie de mip::Label klassereferentie voor meer informatie.
ListSensitivityLabels()
std::vector<shared_ptr<mip::Label>> labels = engine->ListSensitivityLabels();
Of vereenvoudigd:
auto labels = engine->ListSensitivityLabels();
De etiketten en id's afdrukken
Het afdrukken van de namen laat zien dat de applicatie het beleid van de service heeft opgehaald en de labels heeft opgehaald. Als u het label wilt toepassen, hebt u de label-id nodig. De volgende code doorloopt alle labels en geeft voor elk bovenliggend en onderliggend label de name en de id weer.
//Iterate through all labels in the vector
for (const auto& label : labels) {
//Print label name and GUID
cout << label->GetName() << " : " << label->GetId() << endl;
//Print child label name and GUID
for (const auto& child : label->GetChildren()) {
cout << "-> " << child->GetName() << " : " << child->GetId() << endl;
}
}
U kunt de door GetSensitivityLabels() geretourneerde verzameling mip::Label gebruiken om alle labels weer te geven die beschikbaar zijn voor de gebruiker en vervolgens, wanneer een label is geselecteerd, de ID gebruiken om labels op een bestand toe te passen.
Volgende stappen
Nu het profiel is geladen, wordt de engine toegevoegd en zijn labels beschikbaar, kunt u een handler toevoegen om labels te lezen, schrijven of verwijderen uit bestanden. Zie Bestandshandlers in de MIP SDK voor meer informatie.