Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
mip::FileEngine
v MIP File SDK poskytuje rozhraní pro všechny operace prováděné na základě zadané identity. Pro každého uživatele, který se přihlásí k aplikaci, se přidá jeden modul a všechny operace, které modul provádí, se budou provádět v kontextu této identity.
Má FileEngine
dvě hlavní odpovědnosti: Seznamování štítků pro ověřeného uživatele a vytváření obslužných programů pro provádění souborových operací pro uživatele.
mip::FileEngine
-
ListSensitivityLabels()
: Získá seznam štítků načteného motoru. -
CreateFileHandler()
: Vytvořímip::FileHandler
pro určitý soubor či datový proud.
Přidání souborového stroje
Jak je popsáno v objektech Profile a Engine, může mít modul dva stavy – CREATED
nebo LOADED
. Pokud to není jeden z těchto dvou stavů, neexistuje. Pokud chcete vytvořit i načíst stav, je nutné provést pouze jedno volání FileProfile::LoadAsync
. Pokud již engine existuje v mezipaměti, bude LOADED
. Pokud neexistuje, bude CREATED
a LOADED
.
CREATED
znamená, že aplikace má všechny informace ze služby potřebné k načtení engine.
LOADED
znamená, že všechny datové struktury potřebné k využití modulu byly vytvořeny v paměti.
Vytvoření nastavení motoru souboru
Podobně jako profil vyžaduje modul také objekt nastavení . mip::FileEngine::Settings
Tento objekt ukládá jedinečný identifikátor modulu, mip::AuthDelegate
implementaci, přizpůsobitelná klientská data, která lze použít pro ladění nebo telemetrii a volitelně národní prostředí.
Zde vytvoříme FileEngine::Settings
objekt s názvem engineSettings pomocí identity uživatele aplikace.
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.
Při vytváření engineSettings tímto způsobem je důležité explicitně nastavit jedinečné engineId prostřednictvím:
engineSettings.SetEngineId(engineId);
Použití uživatelského jména nebo e-mailu pomáhá zajistit, aby se pokaždé, když uživatel používá službu nebo aplikaci, načetl stejný modul.
Platné je také zadání vlastního ID motoru.
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.
Osvědčeným postupem je, že první parametr id
by měl být něco, co umožňuje snadné připojení motoru k přidruženému uživateli. Například e-mailová adresa, hlavní název uživatele (UPN) nebo GUID objektu AAD by zajistily, že ID je jedinečné a může být načteno z místního stavu bez volání služby.
Přidání souborového stroje
Pokud chcete přidat modul, vrátíme se k modelu příslibu a budoucnosti použitému k načtení profilu. Místo vytvoření příslibu pro mip::FileProfile
, je vytvořen pomocí 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();
Konečným výsledkem výše uvedeného kódu je, že modul ověřeného uživatele se přidá do profilu.
Seznam popisků citlivosti
Pomocí přidaného enginu je nyní možné vypsat všechny štítky citlivosti dostupné ověřenému uživateli voláním engine->ListSensitivityLabels()
.
ListSensitivityLabels()
načte seznam popisků a atributů těchto popisků pro konkrétního uživatele ze služby. Výsledek je uložen ve vektoru std::shared_ptr<mip::Label>
.
Přečtěte si další informace zde.mip::Label
SeznamCitlivostníchŠtítků()
std::vector<shared_ptr<mip::Label>> labels = engine->ListSensitivityLabels();
Nebo zjednodušené:
auto labels = engine->ListSensitivityLabels();
Tisk štítků a ID
Tisk názvů je snadný způsob, jak ukázat, že jsme z této služby úspěšně načetli politiku a dokázali získat štítky. K použití popisku je vyžadován jeho identifikátor. Následující kód iteruje přes všechny popisky a zobrazí name
a id
pro každý nadřazený a podřízený popisek.
//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;
}
}
Kolekce mip::Label
, vrácená komponentou GetSensitivityLabels()
, může být použita k zobrazení všech popisků dostupných uživateli a následně, po výběru, lze ID použít pro aplikaci popisků na soubor.
Další kroky
Teď, když je profil načtený, engine přidaný a máme popisky, můžeme přidat obslužnou rutinu, která začne číst, zapisovat nebo odebírat popisky ze souborů. Podívejte se na Obslužné rutiny souborů v sadě MIP SDK.