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.
Deze quickstart laat zien hoe u tijdens runtime het clientinitialisatiepatroon implementeert dat wordt gebruikt door de MIP SDK .NET-wrapper voor de Beleids-SDK.
Opmerking
Elke clienttoepassing die gebruikmaakt van de MIP-.NET Policy SDK heeft de stappen in deze quickstart nodig. Voltooi het instellen en configureren van de MIP SDK voordat u begint.
Vereiste voorwaarden
Als u dat nog niet hebt gedaan, moet u het volgende doen:
- Microsoft Information Protection (MIP) SDK instellen en configureren. Voer deze stappen uit voordat u met deze quickstart begint.
- Optioneel:
- Controleer profiel- en motorobjecten.
- Controleer de authenticatieconcepten.
Een Visual Studio-oplossing en -project maken
Open Visual Studio 2022 of hoger en selecteer het menu Bestand , Nieuw, Project.
- Selecteer Console-app (gericht op .NET 8 of hoger).
- Geef een naam en locatie op voor het project.
Voeg de NuGet-pakketten toe voor de MIP Policy SDK en MSAL:
- Klik in Solution Explorer met de rechtermuisknop op het projectknooppunt en selecteer NuGet-pakketten beheren....
- Selecteer Bladeren, voer Microsoft.InformationProtection in het zoekvak in en installeer het pakket Microsoft.InformationProtection.Policy .
- Zoek en installeer Microsoft.Identity.Client.
Implementeer een authenticatiegedelegeerde.
Voeg een nieuwe klasse toe met de naam
AuthDelegateImplementation:using Microsoft.InformationProtection; using Microsoft.Identity.Client; public class AuthDelegateImplementation : IAuthDelegate { private ApplicationInfo _appInfo; private IPublicClientApplication _app; public AuthDelegateImplementation(ApplicationInfo appInfo) { _appInfo = appInfo; } public string AcquireToken(Identity identity, string authority, string resource, string claims) { var authorityUri = new Uri(authority); authority = string.Format("https://{0}/{1}", authorityUri.Host, "<Tenant-GUID>"); _app = PublicClientApplicationBuilder .Create(_appInfo.ApplicationId) .WithAuthority(authority) .WithDefaultRedirectUri() .Build(); var accounts = _app.GetAccountsAsync().GetAwaiter().GetResult(); string[] scopes = new string[] { resource.EndsWith('/') ? $"{resource}.default" : $"{resource}/.default" }; var result = _app.AcquireTokenInteractive(scopes) .WithAccount(accounts.FirstOrDefault()) .WithPrompt(Prompt.SelectAccount) .ExecuteAsync() .ConfigureAwait(false) .GetAwaiter() .GetResult(); return result.AccessToken; } }
De consent-delegate implementeren
Voeg een nieuwe klasse toe met de naam
ConsentDelegateImplementation:using Microsoft.InformationProtection; public class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }
Het beleidsprofiel en de engine initialiseren
Werk
Program.csbij omMipContextte maken,PolicyProfilete laden enPolicyEnginetoe te voegen.using Microsoft.InformationProtection; using Microsoft.InformationProtection.Policy; // Application info for Microsoft Entra app registration ApplicationInfo appInfo = new ApplicationInfo() { ApplicationId = "<application-id>", ApplicationName = "MIP SDK Policy Quickstart", ApplicationVersion = "1.0" }; // Create MipConfiguration and MipContext var mipConfiguration = new MipConfiguration(appInfo, "mip_data", LogLevel.Trace, false, CacheStorageType.OnDiskEncrypted); var mipContext = MIP.CreateMipContext(mipConfiguration); // Create auth and consent delegates var authDelegate = new AuthDelegateImplementation(appInfo); var consentDelegate = new ConsentDelegateImplementation(); // Create PolicyProfile var profileSettings = new PolicyProfileSettings(mipContext, CacheStorageType.OnDiskEncrypted); var profile = MIP.LoadPolicyProfileAsync(profileSettings).GetAwaiter().GetResult(); // Create PolicyEngine var engineSettings = new PolicyEngineSettings( id: "<user@contoso.com>", authDelegate: authDelegate, clientData: "", locale: "en-US") { Identity = new Identity("<user@contoso.com>") }; var engine = profile.AddEngineAsync(engineSettings).GetAwaiter().GetResult(); Console.WriteLine("Policy engine loaded successfully.");Bouwen en testen. De toepassing moet initialiseren en verbinding maken met de beleidsservice.