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.
I mip::FileEngine MIP-fil-SDK:t finns ett gränssnitt för alla åtgärder som utförs för en angiven identitet. Lägg till en motor för varje användare som loggar in i programmet. Motorn utför alla åtgärder i kontexten för den identiteten.
FileEngine har två primära ansvarsområden: att lista etiketter för en autentiserad användare och skapa filhanterare för att utföra filåtgärder för användarens räkning.
mip::FileEngine-
ListSensitivityLabels(): Hämtar listan över etiketter för den inlästa motorn. -
CreateFileHandler(): Skapar enmip::FileHandlerför en specifik fil eller dataström.
Lägg till en filmotor
Som beskrivs i Profil- och motorobjekt kan en motor ha två tillstånd – CREATED eller LOADED. Om det inte är ett av dessa två tillstånd finns det inte. Om du vill skapa och läsa in ett tillstånd gör du ett enda anrop till FileProfile::LoadAsync. Om motorn redan finns i det cachade tillståndet är det LOADED. Om den inte finns, är det CREATED och LOADED.
CREATED innebär att applikationen har all information från tjänsten som behövs för att ladda motorn.
LOADED innebär att alla datastrukturer som krävs för att använda motorn finns i minnet.
Skapa inställningar för filmotorn
Precis som en profil kräver motorn också ett inställningsobjekt, mip::FileEngine::Settings. Det här objektet lagrar den unika motoridentifieraren, mip::AuthDelegate implementeringen, anpassningsbara klientdata för felsökning eller telemetri och, om du vill, språkvarianten.
Här skapar vi ett FileEngine::Settings objekt som kallas engineSettings med hjälp av programanvändarens identitet.
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.
När du skapar engineSettings på det här sättet anger du också uttryckligen ett unikt engineId:
engineSettings.SetEngineId(engineId);
Med användarnamnet eller e-postmeddelandet ser du till att samma motor läses in varje gång användaren använder tjänsten eller programmet.
Giltigt är också att tillhandahålla ett anpassat motor-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.
Vi rekommenderar att du använder en första parameter, , idsom ansluter motorn till den associerade användaren. En e-postadress, UPN eller Microsoft Entra objekt-GUID hjälper till att säkerställa att ID:t är unikt och kan läsas in från lokalt tillstånd utan att anropa tjänsten.
Lägg till filmotorn
För att lägga till motorn, återgå till promise/future-mönstret som används för att läsa in profilen. I stället för att skapa löftet för mip::FileProfile, skapa det med hjälp av 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();
Koden lägger till motorn för den autentiserade användaren i profilen.
Lista känslighetsetiketter
Med hjälp av den tillagda motorn kan du visa alla känslighetsetiketter som är tillgängliga för den autentiserade användaren genom att anropa engine->ListSensitivityLabels().
ListSensitivityLabels() hämtar listan med etiketter och attribut för dessa etiketter för en specifik användare från tjänsten. Resultatet lagras i en vektor av std::shared_ptr<mip::Label>.
Mer information finns i klassreferensenmip::Label.
ListSensitivityLabels()
std::vector<shared_ptr<mip::Label>> labels = engine->ListSensitivityLabels();
Eller förenklat:
auto labels = engine->ListSensitivityLabels();
Skriv ut etiketter och ID:t
När du skriver ut namnen visas att programmet har hämtat principen från tjänsten och fått etiketterna. Om du vill använda etiketten behöver du etikettidentifieraren. Följande kod går igenom alla etiketter och visar name och id för varje huvudetikett och underetikett.
//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;
}
}
Du kan använda samlingen som mip::Label returneras av GetSensitivityLabels() för att visa alla etiketter som är tillgängliga för användaren och sedan använda ID:t för att tillämpa etiketter på en fil när du väljer det.
Nästa steg
Nu när profilen har lästs in, motorn har lagts till och etiketter finns tillgängliga kan du lägga till en hanterare för att läsa, skriva eller ta bort etiketter i filer. Mer information finns i Filhanterare i MIP SDK.