Exporter (0) Imprimer
Développer tout

Comment : modifier les destinataires d'un en-tête SOAP

Cette rubrique est spécifique à une technologie existante. Les services Web XML et les clients du service Web XML doivent à présent être créés à l'aide de Windows Communication Foundation .

Exemple de code

Par défaut, les en-têtes SOAP sont envoyés par un client de service Web à une méthode de service Web lorsqu'un attribut SoapHeader est appliqué à une méthode de service Web. Toutefois, un en-tête SOAP peut également être renvoyé par la méthode de service Web au client de service Web. Il peut également être envoyé dans les deux directions. La définition de la propriété Direction d'un attribut SoapHeader appliquée à une méthode de service Web contrôle le destinataire de l'en-tête SOAP. La propriété Direction est de type SoapHeaderDirection, qui a quatre valeurs: In, Out, InOut et Fault. Celles-ci font référence au destinataire (s'agit-il du serveur de service Web), au client, ou au serveur et au client de service Web à la fois, et indiquent si l'en-tête SOAP est envoyé au client lorsqu'une exception est levée par le service Web.

Remarque : la version 1.0 du .NET Framework SDK ne prend pas en charge la valeur Fault.

Pour modifier le destinataire de l'en-tête SOAP

  1. Définissez l'en-tête SOAP.

    public class MyHeader : SoapHeader 
    {
        public string Username;
        public string Password;
    }
    
    

    Public Class MyHeader : Inherits SoapHeader 
        Public Username As String
        Public Password As String
    End Class
    
  2. Ajoutez une variable membre à la classe qui implémente le service Web.

    [WebService(Namespace="http://www.contoso.com")]
    public class MyWebService : WebService
    {
        public MyHeader myOutHeader;
    

    <WebService(Namespace:="http://www.contoso.com")> _
    Public Class MyWebService : Inherits WebService
        Public myOutHeader As MyHeader
    
  3. Appliquez un attribut SoapHeader à chaque méthode de service Web qui traite l'en-tête SOAP. Définissez la propriété Direction pour chaque destinataire souhaité, à l'aide de l'énumération SoapHeaderDirection. L'exemple suivant définit le client de service Web comme destinataire en affectant à Direction la valeur SoapHeaderDirection.Out.

        
        [WebMethod]
        [SoapHeader("myOutHeader",Direction=SoapHeaderDirection.Out)]
    
    

        <WebMethod, _
         SoapHeader("myOutHeader",Direction:=SoapHeaderDirection.Out)>
    
  4. Traitez ou définissez l'en-tête SOAP, selon le destinataire. L'exemple de code suivant définit les valeurs de l'en-tête SOAP, car le destinataire est le client de service Web.

          // Return the client's authenticated name.
          myOutHeader.Username = User.Identity.Name;
    
    

          ' Return the client's authenticated name.
          myOutHeader.Username = User.Identity.Name
        
    

Exemple

L'exemple de code suivant définit un en-tête SOAP MyHeader envoyé de la méthode de service Web au client.

<%@ WebService Language="C#" Class="MyWebService" %>

using System.Web.Services;
using System.Web.Services.Protocols;

// Define a SOAP header by deriving from the SoapHeader base class.
public class MyHeader : SoapHeader 
{
    public string Username;
    public string Password;
}

[WebService(Namespace="http://www.contoso.com")]
public class MyWebService : WebService
{
    public MyHeader myOutHeader;
 
    [WebMethod]
    [SoapHeader("myOutHeader",Direction=SoapHeaderDirection.Out)]
    public void MyOutHeaderMethod() 
    {
      // Return the client's authenticated name.
      myOutHeader.Username = User.Identity.Name;          
    }
}

Voir aussi

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft