Se connecter à Mezzoteam par service web

Allez, passons aux travaux pratiques ! Après mes deux articles précédents (ici et là), nous allons apprendre à nous connecter à Mezzoteam.

Dans Visual Studio, créez un nouveau projet. Nous allons choisir Application Windows Forms, et choisir un nom, par exemple MezzoConnect.

Nouveau projet Visual Studio

Nouveau projet Visual Studio

Après avoir cliqué sur OK, l’interface du projet s’affiche, avec un formulaire créé par défaut. Nous allons ajouter le fichier d’interface avec les services web de Mezzoteam que nous avions généré dans l’article précédent (vous pouvez également le télécharger ici). Il vous suffit de cliquer sur le nom de votre projet (MezzoConnect), et de choisir Ajouter / Elément existant, comme montré ci-dessous :

Ajout du fichier d'interface des services web

Ajout du fichier d'interface des services web

Une fois le fichier ajouté, il faut encore ajouter la référence au composant .NET qui va nous permettre d’utiliser des services web dans notre application. Pour cela, faites une clic droit sur le dossier References dans l’explorateur de solutions, et ajoutez le composant System.Web.Services comme montré ci-dessous.

 

Ajout du composant System.Web.Services

Ajout du composant System.Web.Services

Formulaire de saisie

Nous allons maintenant créer notre formulaire, qui comprendra deux champs de saisie et deux labels pour l’identifiant et le mot de passe, et un bouton pour lancer la connexion. Tous ces contrôles sont disponibles dans la boite à outils, que vous faites apparaître en cliquant sur le bouton vertical situé à gauche de votre écran. Vous pouvez conserver la boite à outils à l’écran en l’épinglant (petite icône d’épingle située dans la barre de titre de la boite à outils).

Formulaire de connexion

Formulaire de connexion

Quelques trucs : pour modifier le texte des labels, ne double-cliquez pas dessus, mais éditez la propriété Text dans le bloc d’édition situé en bas à gauche de votre fenêtre. Le champ mot de passe a tout intérêt à être protégé afin que ce que vous tapez ne soit pas lisible ; heureusement Visual Studio propose la propriété UseSystemPasswordChar afin de permettre ce comportement.

Codage de l’action

Codons maintenant notre connexion à Mezzoteam. Double-cliquez sur le bouton que vous avez ajouté afin de faire apparaître le code de l’action button1_Click.

Nous allons tout d’abord ajouter le namespace Mezzoteam en haut du texte en ajoutant le texte suivant à la siote des autres « using »  :

using Mezzoteam;

Cela nous permettra d’accéder directement aux méthodes définies dans notre fichier d’interface, sans être obligé de les préfixer par le nom du namespace.

Nous pouvons maintenant coder l’action Click pour déclencher la connexion à Mezzoteam. Recopiez le texte ci-dessous dans votre projet.

private void button1_Click(object sender, EventArgs e)
{
  // proxy vers le service web security.asmx
  security mySecurityWs = new security();
  // Objet de retour après connexion
  LogonReturn myLogon;
  // Initialisation de l'objet Credential, qui contient les infos de connexion
  mySecurityWs.CredentialSoapHeaderValue = new CredentialSoapHeader();
  // Récupération des valeur de l'identifiant et du mot de passe saisis
  // par l'utilisateur dans le formulaire
  mySecurityWs.CredentialSoapHeaderValue.Login = textBox1.Text;
  mySecurityWs.CredentialSoapHeaderValue.Password = textBox2.Text;
  // Connexion à Mezzoteam.
  myLogon = mySecurityWs.Logon();
  // Si l'objet myLogon n'est pas null, on est connecté
  if (myLogon != null)
  {
    MessageBox.Show("Vous êtes connecté !");
  }
  else
  {
    MessageBox.Show("Vous n'êtes pas connecté !");
  }
}

Vous pouvez maintenant appuyer sur la touche F5, qui va lancer la compilation, puis l’exécution de votre projet. Saisissez votre identifiant et votre mot de passe Mezzo dans la boite de dialogue ;: après quelques secondes, le message « Vous êtes connecté ! » apparait. 

Bravo ! Vous venez de vous connecter à Mezzoteam par service web. 

Cliquez sur le lien pour télécharger la solution Mezzoconnect.

3 réponses
  1. BEN
    BEN dit :

    Bonjour,

    La méthode « GroupGetList » de « directory » à l’air « boguée »
    Pour récupérer la liste des « organisations » dans l’annuaire, j’utilise :
    Group[] org = _dirProxy.GroupGetList(CurrentWorkspaceId, GroupTypes.StandardOrganization | GroupTypes.OrganizationOnly);

    malheureusement, le résultat obtenu c’est TOUS LES GROUPES de l’annuaire !
    Je suis obligé de traiter tous les éléments de org et exclure ceux qui n’ont pas le type « StandardOrganization » ou « OrganizationOnly » !
    Dommage !

    Répondre
  2. BEN
    BEN dit :

    Le fichier « mezzoteam_ws.cs » provient d’où ?
    Comment faire pour le tenir à jour par rapport à la version 2.10 de Mezzoteam ?

    Répondre

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Répondre à BEN Annuler la réponse

Votre adresse e-mail ne sera pas publiée.