IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Authentification d'un web service


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 73
    Points
    73
    Par défaut Authentification d'un web service
    Bonjour,
    J'essaye de consommer un web service qui nécessite une authentification : http://eur-lex.europa.eu/eurlex-ws?wsdl
    La documentation du web service : http://eur-lex.europa.eu/content/too...nual_v2.00.pdf

    Je suis sur Visual Studio 2010, Framework 4 et j'ai créé un projet "Windows forms application"

    J'ai donc ajouté la référence de mon webservice : MonWebService
    ainsi que les références "Microsoft.Web.Service3" (WSE 3.0) et "System.Web.Services"

    J'ai modifié les méthodes "doQueryRequest", "searchRequest" et "doQueryResponse" comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [System.Web.Services.WebServiceBindingAttribute(Name = "MonWebService", Namespace = "http://eur-lex.europa.eu/search")]
    public partial class doQueryRequest : Microsoft.Web.Services3.WebServicesClientProtocol
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [System.Web.Services.WebServiceBindingAttribute(Name = "MonWebService", Namespace = "http://eur-lex.europa.eu/search")]
    public partial class searchRequest : Microsoft.Web.Services3.WebServicesClientProtocol, System.ComponentModel.INotifyPropertyChanged
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [System.Web.Services.WebServiceBindingAttribute(Name = "MonWebService", Namespace = "http://eur-lex.europa.eu/search")]
    public partial class doQueryResponse : Microsoft.Web.Services3.WebServicesClientProtocol
    et dans le Form1_Load de mon projet, j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
                MonWebService.searchRequest sr = new MonWebService.searchRequest();
                sr.expertQuery = "DN=3*";
                sr.page = 1;
                sr.pageSize = 10;
                sr.searchLanguage = MonWebService.searchLanguageType.fr;
                sr.Url = "http://eur-lex.europa.eu/eurlex-ws?wsdl";
     
                UsernameToken userToken = new UsernameToken("<identifiant>", "<motpasse>", PasswordOption.SendHashed);
     
                sr.SetClientCredential (userToken);
     
                MonWebService.doQueryRequest dqr = new MonWebService.doQueryRequest(sr);
     
                MonWebService.searchResults sres = new MonWebService.searchResults();
     
                MonWebService.doQueryResponse dqresp = new MonWebService.doQueryResponse();
    Mais je n'ai aucun résultat.
    Je ne sais pas si l'authentification a fonctionné.

    Dans SOAPUI 5.3.0, J'ai réussi à exécuter le web service et j'obtiens bien un résultat pour ces mêmes critères de recherche.

    Merci d'avance de votre aide

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    ton lien vers la doc est cassé, j'ai pas pu la lire.
    Avec SoapUI comment as-tu saisi les credentials ? En ajoutant le tag Security dans le tag Header de l'enveloppe SOAP ?
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 73
    Points
    73
    Par défaut
    oups, merci
    voici le lien de la doc : http://eur-lex.europa.eu/content/too...nual_v2.00.pdf

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Bon, y'a deux trucs que j'essaierai avec ton code :
    - passer le PasswordOption à SendPlainText (dans l'exemple de la doc c'est ce qui est fait),
    - assigner le endpoint du service (http://eur-lex.europa.eu/EURLexWebService) à l'attribut Url, et non l'url du WSDL.
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 73
    Points
    73
    Par défaut
    merci jopopmk de te pencher sur mon problème.
    j'ai essayé, cela ne change rien.

    dans quoi je dois récupérer un éventuel résultat selon toi? searchResults, doQueryRequest, doQueryResponse ?

    Est-ce que le "WebServiceBindingAttribute" est correct ?

    Faut il interfacé les 3 méthodes ou juste searchRequest ?

    cf copie écran sous SOAPUI
    Nom : SOAPUI.jpg
Affichages : 287
Taille : 430,0 Ko

    Nom : SOAPUI2.jpg
Affichages : 237
Taille : 88,9 Ko
    Nom : SOAPUI3.jpg
Affichages : 237
Taille : 56,6 Ko
    Nom : SOAPUI4.jpg
Affichages : 260
Taille : 275,6 Ko

    merci

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Je viens de passer -ou plutôt de perdre- 30' à essayer de comprendre comment fonctionnent les références aux web services dans Visual Studio (avec un serveur CMIS en face) ...

    Et c'est problème sur problème : exception sur une connection closed by host APRES le retour de ma FAULT (HTTP 500), galère pour atteindre le vrai message de la FAULT, toujours pas trouver comment envoyer en multipart avec boundary (obligatoire pour mon serveur), la plupart des tuto qui ne collent pas à ce qui m'a été généré ....

    J'adhère plus que jamais à ma signature, mais du coup je ne peux te donner que des réponses théoriques ...
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 73
    Points
    73
    Par défaut
    euhh merci du temps passé mais je ne comprends pas tout ce que tu dis, je suis débutant...

  8. #8
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Pour résumer : je connais assez bien SOAP, mais je coince jamais sur rien car tout est développé from scratch en C. Là j'ai essayé le code auto-généré par Visual Studio (comme toi) pour essayer de comprendre comment ça marche et t'aider. Mais le moindre écart avec le fonctionnement de base devient rapidement une galère sans nom (ou alors je l'appelle "Goéland", ça fait bien bateau et c'est un nom d'oiseau ).
    Plus je connais de langages, plus j'aime le C.

  9. #9
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 73
    Points
    73
    Par défaut
    Mince j'espère que la galère ne s'appelle pas Titanic, sinon je suis dans la m#@ç^$ !!
    En tout cas çà ne fait pas avancer mon schmilblick tout çà!
    merci quand même d'avoir essayer

  10. #10
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 73
    Points
    73
    Par défaut
    Personne n'a une petite idée?

Discussions similaires

  1. Mécanisme d'authentification d'un web service
    Par ismou05 dans le forum Services Web
    Réponses: 8
    Dernier message: 14/07/2016, 11h11
  2. authentification web service
    Par dimahoo dans le forum Sécurité
    Réponses: 4
    Dernier message: 29/10/2010, 09h29
  3. authentification dans un web service
    Par sophiesophie dans le forum Services Web
    Réponses: 2
    Dernier message: 08/08/2008, 08h37
  4. [Web Service] Authentification
    Par Stef_D dans le forum Delphi
    Réponses: 9
    Dernier message: 15/02/2007, 17h05
  5. [Web Services] Appel de Web Service (pb avec authentification)
    Par cicolas dans le forum Spring
    Réponses: 4
    Dernier message: 04/07/2006, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo