Comment : modifier les destinataires d'un en-tête SOAP
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
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
Ajoutez une variable membre à la classe qui implémente le service Web.
[WebService(Namespace="https://www.contoso.com")] public class MyWebService : WebService { public MyHeader myOutHeader;
<WebService(Namespace:="https://www.contoso.com")> _ Public Class MyWebService : Inherits WebService Public myOutHeader As MyHeader
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)>
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="https://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;
}
}
<%@ WebService Language="VB" Class="MyWebService" %>
Imports System.Web.Services
Imports System.Web.Services.Protocols
' Define a SOAP header by deriving from the SoapHeader base class.
Public Class MyHeader : Inherits SoapHeader
Public Username As String
Public Password As String
End Class
<WebService(Namespace:="https://www.contoso.com")> _
Public Class MyWebService : Inherits WebService
Public myOutHeader As MyHeader
<WebMethod, _
SoapHeader("myOutHeader",Direction:=SoapHeaderDirection.Out)> _
Public Sub MyOutHeaderMethod()
' Return the client's authenticated name.
myOutHeader.Username = User.Identity.Name
End Sub
End Class
Voir aussi
Référence
SoapHeader
SoapHeaderAttribute
SoapUnknownHeader
SoapHeaderException
Concepts
Création de clients de service Web XML
Autres ressources
Utilisation d'en-têtes SOAP
Services Web XML utilisant ASP.NET
Copyright ©2007 par Microsoft Corporation. Tous droits réservés.