Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung erfahren Sie, wie Sie das Muster für die Clientinitialisierung implementieren, das zur Laufzeit vom MIP C++ SDK Policy SDK ausgeführt wird.
Hinweis
Jede Clientanwendung, die das MIP-Richtlinien-SDK verwendet, benötigt die Schritte in dieser Schnellstartanleitung. Schließen Sie das Einrichten und Konfigurieren des MIP-SDKs vor dem Start ab.
Voraussetzungen
Sollten Sie das noch nicht getan haben, sorgen Sie dafür, dass Sie:
- Microsoft Information Protection (MIP)-SDK-Setup und -Konfiguration. Führen Sie diese Schritte vor dieser Schnellstartanleitung aus.
- Optionalerweise:
- Überprüfen Sie Profil- und Modulobjekte.
- Überprüfen Sie die Authentifizierungskonzepte.
- Überprüfen Sie die Konzepte von Beobachtern.
Visual Studio-Lösung und Projekt erstellen
Öffnen Sie Visual Studio 2022 oder höher, wählen Sie das Menü "Datei ", "Neu", "Projekt" aus.
- Wählen Sie "Konsolen-App" unter C++-Vorlagen aus.
- Geben Sie einen Namen und einen Speicherort für das Projekt an.
Fügen Sie dem Projekt das NuGet-Paket für das MIP-Richtlinien-SDK hinzu:
- Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie "NuGet-Pakete verwalten" aus.
- Wählen Sie "Durchsuchen" aus, und geben Sie "Microsoft.InformationProtection" in das Suchfeld ein.
- Wählen Sie das Paket Microsoft.InformationProtection.Policy aus, und wählen Sie Install aus.
Implementieren einer Beobachterklasse
Erstellen Sie eine grundlegende Implementierung für eine Richtlinienprofilbeobachterklasse, indem Sie die SDK-Klasse mip::PolicyProfile::Observer erweitern.
Fügen Sie ihrem Projekt eine neue Klasse mit dem Namen hinzu
profile_observer.Ersetzen Sie den Inhalt von
profile_observer.h:#include <memory> #include "mip/upe/policy_profile.h" class PolicyProfileObserver final : public mip::PolicyProfile::Observer { public: PolicyProfileObserver() { } void OnLoadSuccess(const std::shared_ptr<mip::PolicyProfile>& profile, const std::shared_ptr<void>& context) override; void OnLoadFailure(const std::exception_ptr& error, const std::shared_ptr<void>& context) override; void OnAddEngineSuccess(const std::shared_ptr<mip::PolicyEngine>& engine, const std::shared_ptr<void>& context) override; void OnAddEngineFailure(const std::exception_ptr& error, const std::shared_ptr<void>& context) override; };Ersetzen Sie den Inhalt von
profile_observer.cpp:#include "profile_observer.h" #include <future> using std::promise; using std::shared_ptr; using std::exception_ptr; void PolicyProfileObserver::OnLoadSuccess(const shared_ptr<mip::PolicyProfile>& profile, const shared_ptr<void>& context) { auto loadPromise = static_cast<promise<shared_ptr<mip::PolicyProfile>>*>(context.get()); loadPromise->set_value(profile); } void PolicyProfileObserver::OnLoadFailure(const exception_ptr& error, const shared_ptr<void>& context) { auto loadPromise = static_cast<promise<shared_ptr<mip::PolicyProfile>>*>(context.get()); loadPromise->set_exception(error); } void PolicyProfileObserver::OnAddEngineSuccess(const shared_ptr<mip::PolicyEngine>& engine, const shared_ptr<void>& context) { auto addEnginePromise = static_cast<promise<shared_ptr<mip::PolicyEngine>>*>(context.get()); addEnginePromise->set_value(engine); } void PolicyProfileObserver::OnAddEngineFailure(const exception_ptr& error, const shared_ptr<void>& context) { auto addEnginePromise = static_cast<promise<shared_ptr<mip::PolicyEngine>>*>(context.get()); addEnginePromise->set_exception(error); }
Implementieren eines Authentifizierungsdelegats und einer Hauptfunktion
Fügen Sie ihrem Projekt eine neue Klasse mit dem Namen hinzu
auth_delegate. Details zur Implementierung der Schnittstelle finden Sie untermip::AuthDelegate.Aktualisieren Sie
main(), um dasMipContextzu erstellen, laden Sie einPolicyProfile, und fügen Sie einPolicyEnginehinzu.#include "mip/mip_context.h" #include "mip/upe/policy_profile.h" #include "auth_delegate.h" #include "profile_observer.h" #include <iostream> #include <future> using std::cout; using std::endl; using std::make_shared; using std::shared_ptr; int main() { // Construct/initialize objects required by the application's profile object mip::ApplicationInfo appInfo{ "your_app_id", // Application ID from Microsoft Entra app registration "MIP SDK Policy Quickstart", // Friendly name "1.0" // Version }; auto mipConfiguration = make_shared<mip::MipConfiguration>( appInfo, // ApplicationInfo object "mip_data", // Path to store settings and logs mip::LogLevel::Trace, // Log level false, // isOfflineOnly mip::CacheStorageType::OnDiskEncrypted // Cache storage type ); auto mipContext = mip::MipContext::Create(mipConfiguration); auto profileObserver = make_shared<PolicyProfileObserver>(); auto authDelegateImpl = make_shared<sample::auth::AuthDelegateImpl>("your_app_id"); mip::PolicyProfile::Settings profileSettings(mipContext, mip::CacheStorageType::OnDiskEncrypted, profileObserver ); // Load Policy Profile auto profilePromise = make_shared<std::promise<shared_ptr<mip::PolicyProfile>>>(); auto profileFuture = profilePromise->get_future(); mip::PolicyProfile::LoadAsync(profileSettings, profilePromise); auto profile = profileFuture.get(); // Add a Policy Engine mip::PolicyEngine::Settings engineSettings( mip::Identity("user@contoso.com"), authDelegateImpl, "", "en-US", false ); auto enginePromise = make_shared<std::promise<shared_ptr<mip::PolicyEngine>>>(); auto engineFuture = enginePromise->get_future(); profile->AddEngineAsync(engineSettings, enginePromise); auto engine = engineFuture.get(); // Application using Policy engine is ready. // Engine can be used to list labels, compute actions, etc. cout << "Policy engine loaded successfully." << endl; return 0; }Erstellen und Testen. Die Anwendung sollte erfolgreich initialisiert und eine Verbindung mit dem Richtliniendienst hergestellt werden.