Utiliser le contrôle commun de connexion de l’outil XRM dans vos applications clientes

Il existe un modèle pour Visual Studio qui vous permet d’utiliser le contrôle commun de connexion dans vos applications clientes. Le code pour l’authentification, le stockage et la récupération des informations d’identification et la journalisation des diagnostics Microsoft Dataverse est intégré dans le modèle afin que vous puissiez rapidement profiter de ces fonctionnalités dans vos applications clientes Windows pour Dataverse. Le contrôle commun de connexion est une implémentation de Microsoft.Xrm.Tooling.CrmConnectControl et le contrôle ressemble à l’image suivante.

Contrôle de connexion commun des outils XRM.

Conditions préalables

  • .NET Framework 4.6.2 ou version ultérieure.
  • Visual Studio 2017 (recommandé)
  • Connecté à Internet afin de pouvoir télécharger/restauration les packages Nuget requis lors de l’utilisation du modèle de projet.

Créer une application WPF à l’aide du modèle de contrôle commun de connexion

Voici un moyen rapide de créer une application Windows Presentation Foundation (WPF) qui tire profit du contrôle commun de connexion et du code sous-jacent pour l’authentification, le stockage et la réutilisation des informations d’identification et le traçage ou la journalisation par défaut.

  1. Démarrez Visual Studio et créez un projet.

  2. Dans la boîte de dialogue Nouveau projet :

    1. Dans la liste des modèles installés, développez Visual C#, puis sélectionnez Modèles SDK Dataverse.
    2. Assurez-vous que .NET Framework 4.6.2 est sélectionné.
    3. Sélectionnez Application WPF pour Dynamics 365.
    4. Spécifiez le nom et l’emplacement du projet, puis cliquez sur OK.

    Application WPF pour modèle Dataverse.

Notes

Problème connu avec Visual Studio 2015

Lorsque vous exécutez votre projet/solution dans VS 2015 en mode Débogage, vous risquez de ne pas pouvoir vous connecter. Cela se produit peu importe si vous utilisez la version 4.6.2 ou ultérieure de la structure cible. Cela survient, car le processus d’hébergement de Visual Studio est compilé par rapport à .NET 4.5. Autrement dit, par défaut, il ne prend pas en charge TLS 1.2. Vous pouvez désactiver le processus d’hébergement de Visual Studio pour contourner ce problème.

Cliquez avec le bouton droit sur le nom de votre projet dans Visual Studio, puis sur Propriétés. Sur l’onglet Débogage, vous pouvez décocher l’option Activer le processus d’hébergement de Visual Studio.

Cela ne concerne que l’expérience de débogage dans VS 2015. Cela ne concerne pas les binaires ou les exécutables qui sont créés. Le même problème ne se produit pas dans Visual Studio 2017.

  1. Pour tester le projet :

    1. Enregistrez le projet et appuyez sur F5, ou cliquez sur Débogage > Démarrer le débogage pour vérifier si la compilation du projet s’effectue correctement. Lorsque la compilation est réussie, un fichier MainWindow s’affiche, avec le bouton Se connecter à Dynamics 365. Cliquez sur le bouton pour afficher le contrôle commun de connexion.

    2. Testez l’authentification en indiquant les informations d’identification pour vous connecter à Dataverse, puis cliquez sur Connexion. Un message affiche votre statut de connexion Dataverse.

Pour obtenir un exemple qui utilise le modèle de contrôle commun de connexion pour se connecter à Dataverse et effectuer différentes opérations, voir Exemple : Démarrage rapide de l’API des outils XRM.

Ajouter le modèle de contrôle commun de connexion à votre application WPF existante

Si vous disposez déjà d’une application cliente WPF, vous pouvez facilement y ajouter le modèle de contrôle commun de connexion pour profiter de l’expérience de connexion uniforme et du code sous-jacent pour l’authentification, le stockage et la réutilisation des informations d’identification et le traçage ou la journalisation par défaut Dataverse. Dans ce cas, vous devez créer un contrôle dans l’interface utilisateur de votre application cliente existante pour appeler le contrôle commun de connexion, instancier une instance de l’objet de connexion Dataverse, puis utiliser l’objet de connexion pour effectuer plusieurs opérations dans Dataverse.

  1. Ouvrez un projet d’application WPF existant dans Visual Studio. Dans cet exemple, supposons que le nom de votre projet d’application WPF est SampleWPFApp.

  2. Ajoutez le modèle de contrôle commun de connexion à votre projet.

    1. Dans le volet Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, puis cliquez sur Ajouter > Nouvel élément.

    2. Dans la boîte de dialogue Ajouter un nouvel élément, dans la liste des modèles installés, développez Visual C#, puis sélectionnez Modèles SDK Dataverse. Cliquez sur Formulaire de connexion Dataverse pour les applications WPF, puis cliquez sur OK.

      Ajouter le modèle de contrôle de connexion commun.

  3. Le contrôle de connexion CrmLoginForm1.xaml que vous venez d’ajouter s’affiche dans la zone du concepteur XAML. Si ce n’est pas le cas, double-cliquez sur le fichier CrmLoginForm1.xaml dans le volet Explorateur de solutions.

    Vérifier que le contrôle de connexion s’affiche correctement.

  4. Vous devez désormais appeler le contrôle de connexion que vous venez d’ajouter à partir de votre application. Pour ce faire, ajoutez un contrôle Bouton dans votre fichier MainWindow.xaml, puis définissez respectivement le nom et le contenu sur btnSignIn et Se connecter à Dataverse.

    Ajouter un contrôle pour appeler le formulaire de connexion.

  5. Double-cliquez sur le bouton pour ajouter du code pour l’événement Click du bouton btnSignIn dans le fichier MainWindow.xaml.cs.

  6. Ajoutez l’exemple de code suivant dans l’événement Clic du bouton btnSignIn pour appeler le contrôle CrmLoginForm1, puis créez une instance de l’objet de connexion Dataverse.

    // Establish the Login control.  
    CRMLoginForm1 ctrl = new CRMLoginForm1();  
  
    // Wire event to login response.   
    ctrl.ConnectionToCrmCompleted += ctrl_ConnectionToCrmCompleted;  
  
    // Show the login control.   
    ctrl.ShowDialog();  
  
    // Handle the returned CRM connection object.  
    // On successful connection, display the CRM version and connected org name   
    if (ctrl.CrmConnectionMgr != null && ctrl.CrmConnectionMgr.CrmSvc != null && ctrl.CrmConnectionMgr.CrmSvc.IsReady)  
    {  
        MessageBox.Show("Connected to CRM! Version: " + ctrl.CrmConnectionMgr.CrmSvc.ConnectedOrgVersion.ToString() +   
        " Org: " + ctrl.CrmConnectionMgr.CrmSvc.ConnectedOrgUniqueName, "Connection Status");  
  
        // Perform your actions here  
    }  
    else  
    {  
        MessageBox.Show("Cannot connect; try again!", "Connection Status");  
    }  
  1. Ajoutez la définition de l’événement ctrl_ConnectionToCrmCompleted sous l’événement Click du bouton :
    private void ctrl_ConnectionToCrmCompleted(object sender, EventArgs e)  
    {  
        if (sender is CRMLoginForm1)  
        {  
            this.Dispatcher.Invoke(() =>  
            {  
                ((CRMLoginForm1)sender).Close();  
            });  
        }  
    }  
  1. Voici comment s’affiche votre fichier MainWindow.xaml.cs après l’ajout du code issu des deux étapes précédentes :

    Exemple de code.

  2. Pour tester le projet :

    1. Enregistrez le projet et appuyez sur F5, ou cliquez sur Débogage > Démarrer le débogage pour vérifier si la compilation du projet s’effectue correctement. Lorsque la compilation est réussie, un fichier MainWindow s’affiche, avec le nouveau bouton Se connecter à Dataverse. Cliquez sur le bouton pour afficher le contrôle commun de connexion.

    2. Testez l’authentification en indiquant les informations d’identification pour vous connecter à Dataverse, puis cliquez sur Connexion. Si l’opération est réussie, un message s’affiche pour indiquer la version et le nom de l’organisation à laquelle vous êtes connecté. Cliquez sur OK pour fermer le message.

    Résultats du test du projet.

    1. Si vous cliquez à nouveau sur Se connecter à Dynamics 365, l’application vous invite à choisir les informations d’identification enregistrées lors de la dernière activité de connexion ou à entrer de nouvelles informations d’identification.

      Informations d’identification stockées.

Voir aussi

Exemple : Démarrage rapide de l’API des outils XRM
Créer des applications clientes Windows à l’aide des outils XRM

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).