Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
mip::FileEngine MIP Dosya SDK'sında, belirtilen kimlik adına gerçekleştirilen tüm işlemler için bir arabirim sağlar. Uygulamada oturum açan her kullanıcı için bir işlem altyapısı ekleyin. Motor, tüm işlemleri söz konusu kimlik bağlamında gerçekleştirir.
FileEngine’nin iki temel sorumluluğu vardır: kimliği doğrulanmış bir kullanıcı için etiketleri listelemek ve kullanıcı adına dosya işlemleri gerçekleştirmek için dosya işleyicileri oluşturmak.
mip::FileEngine-
ListSensitivityLabels(): Yüklenen motor için etiketlerin listesini alır. -
CreateFileHandler(): Belirli bir dosya veya akış için birmip::FileHandleroluşturur.
Dosya işleyicisi ekle
Profil ve altyapı nesneleri bölümünde açıklandığı gibi, bir altyapının iki durumu olabilir: CREATED veya LOADED. Bu iki eyaletten biri değilse, yok demektir. Bir durum oluşturmak ve yüklemek için FileProfile::LoadAsync öğesine tek bir çağrı yapın. Motor önbelleğe alınmış durumdaysa zaten vardır, LOADED. Yoksa, CREATED ve LOADED olur.
CREATED, uygulamanın motoru yüklemek için hizmetten gereken tüm bilgilere sahip olduğu anlamına gelir.
LOADED , altyapıyı kullanmak için gereken tüm veri yapılarının bellekte bulunduğunu gösterir.
Dosya motoru ayarları oluşturun
Bir profile benzer şekilde, altyapı da bir ayarlar nesnesi gerektirir. mip::FileEngine::Settings Bu nesne benzersiz altyapı tanımlayıcısını, mip::AuthDelegate uygulamayı, hata ayıklama veya telemetri için özelleştirilebilir istemci verilerini ve isteğe bağlı olarak yerel ayarı depolar.
Burada uygulama kullanıcısının kimliğini kullanarak engineSettingsFileEngine::Settingsbir nesne oluşturuyoruz.
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.
EngineSettings'i bu şekilde oluştururken, açıkça benzersiz bir engineId de ayarlayın:
engineSettings.SetEngineId(engineId);
Kullanıcı adı veya e-postanın kullanılması, kullanıcı hizmeti veya uygulamayı her kullandığında aynı altyapının yüklenmesini sağlamaya yardımcı olur.
Ayrıca özelleştirilmiş bir motor kimliği sağlamak da geçerlidir.
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.
En iyi uygulama olarak, motoru ilgili kullanıcıya bağlayan ilk parametre olarak id kullanın. E-posta adresi, UPN veya Microsoft Entra nesne GUID’si, kimliğin benzersiz olmasını ve hizmet çağrısı yapmadan yerel durumdan yüklenebilmesini sağlamaya yardımcı olur.
Dosya motorunu ekleyin
Motoru eklemek için, profili yüklemek için kullanılan promise/future desenine geri dönün.
mip::FileProfile için promise oluşturmak yerine, bunu mip::FileEngine kullanarak oluşturun.
//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();
Kod, kimliği doğrulanmış kullanıcı için motoru profile ekler.
Duyarlılık etiketlerini listeleme
Eklenen altyapıyı kullanarak kimliği doğrulanmış kullanıcının kullanabileceği tüm duyarlılık etiketlerini çağırarak engine->ListSensitivityLabels()listeleyebilirsiniz.
ListSensitivityLabels() hizmetten belirli bir kullanıcı için bu etiketlerin etiket ve özniteliklerinin listesini getirir. Sonuç, vektörde std::shared_ptr<mip::Label>depolanır.
Daha fazla bilgi için mip::Label sınıf başvurusuna bakın.
ListSensitivityLabels()
std::vector<shared_ptr<mip::Label>> labels = engine->ListSensitivityLabels();
Veya basitleştirilmiş:
auto labels = engine->ListSensitivityLabels();
Etiketleri ve kimlikleri yazdırma
Adların yazdırılması, uygulamanın hizmetten politikayı başarıyla aldığını ve etiketleri edindiğini gösterir. Etiketi uygulamak için etiket tanımlayıcısına ihtiyacınız vardır. Aşağıdaki kod, tüm etiketler üzerinde yineleme yapar ve her bir üst ve alt etiket için id ile name öğelerini görüntüler.
//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;
}
}
Kullanıcının kullanabileceği tüm etiketleri görüntülemek için mip::Label tarafından döndürülen GetSensitivityLabels() koleksiyonunu kullanabilir ve ardından bir etiket seçildiğinde, etiketi bir dosyaya uygulamak için ID’yi kullanabilirsiniz.
Sonraki Adımlar
Artık profil yüklendiğine, işlem altyapısı eklendiğine ve etiketler kullanılabilir olduğuna göre, dosyalardaki etiketleri okumaya, yazmaya veya kaldırmaya başlamak için bir işleyici ekleyebilirsiniz. Daha fazla bilgi için bkz. MIP SDK'sında dosya işleyicileri.