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

Services Web Discussion :

Web Reference, WSE et custom Header


Sujet :

Services Web

  1. #1
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut Web Reference, WSE et custom Header
    Bonjour à tous,

    Je dois appeler un Web Service à partir d'un client C# (je n'ai pas la main sur ce web service). J'ai donc ajouter une web référence à mon projet et fait pointer sur mon WSDL.
    Sauf que ce web service requiert un header bien particulier, qui n'est pas définit dans le fichier wsdl.
    Voici le header que je veux avoir :
    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
    17
    18
       <soapenv:Header>
          <!-- Entete WS-Security -->
          <wsse:Security soapenv:mustUnderstand="1">
             <wsse:UsernameToken>
                <wsse:Username>identifiant</wsse:Username>
                <wsse:Password  Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">mot de passe</wsse:Password>
             </wsse:UsernameToken>
          </wsse:Security>
          <!-- Entete MDW -->
          <ag:unNoeud>val</ag:unNoeud>
          <wsa:unParent>
             <ag:unFils>
                <ag:uneValeur>val</ag:uneValeur>
                <ag:uneAutre>val</ag:uneAutre>
             </ag:unFils>
          </wsa:unParent>
          <ag:encoreUneValeur/>
       </soapenv:Header>

    Première étape, ajouter un élément WS-Security...OK j'ai bien mon noeud dans le header avec le token.
    Pour les autres, je me suis dit que j'allais créer un header héritant de SoapHeader que je passerais ensuite à la méthode :
    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
    //Mon header perso
    public class MyHeader : SoapHeader
        {
            public string test;
        }
    ...
    //Mon web service
     public partial class MonWebService: Microsoft.Web.Services2.WebServicesClientProtocol {
           public MyHeader header;
     
    ...
    //Ajout du custom header à la méthode souhaitée
     [SoapHeader("header",Direction=SoapHeaderDirection.InOut)]
            public string MaWebMethode(...) {
             ...
            }
    Sauf qu'en faisant cela, j'obtiens un header du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <soap:Header>
        <MyHeader >
          <test>blabal</test>
        </MyHeader>
        <wsse:Security soap:mustUnderstand="1">
          <wsse:UsernameToken >
            <wsse:Username></wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"></wsse:Password>
          </wsse:UsernameToken>
        </wsse:Security>
      </soap:Header>
    Ce qui pourrait m'aller pour une partie de l'entête MDW, mais comment construire les nœuds "simples" comme
    <ag:unNoeud>val</ag:unNoeud>
    qui n'a d'autres parents que <soap:Header>

    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut
    Bon ba je m'en suis sorti en utilisant une HttpWebRequest classique et les bonnes valeurs dans le header...

    La loose un SOAP mal documenté.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. "Add Web Reference" exchange impossible
    Par seb.49 dans le forum Exchange Server
    Réponses: 1
    Dernier message: 15/03/2011, 00h37
  2. [VS2005toVS2008]Web reference - Service reference
    Par totoen dans le forum Windows Forms
    Réponses: 1
    Dernier message: 16/01/2009, 09h28
  3. Fonctionnement des Web Reference
    Par alexadvance dans le forum C++/CLI
    Réponses: 1
    Dernier message: 10/10/2007, 12h28
  4. Réponses: 1
    Dernier message: 29/06/2006, 07h05
  5. Réponses: 6
    Dernier message: 24/01/2006, 18h50

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