Procedura: Modificare i destinatari di un’intestazione SOAP
Esempio di codice
Per impostazione predefinita, quando un attributo SoapHeader viene applicato a un metodo del servizio Web, le intestazioni SOAP sono inviate da un client del servizio Web a un metodo del servizio Web. Tuttavia, un'intestazione SOAP può anche essere inviata in direzione opposta dal metodo del servizio Web al client del servizio Web. Può essere inoltre inviata in entrambe le direzioni. L'impostazione della proprietà Direction di un attributo SoapHeader applicato a un metodo del servizio Web serve a controllare il destinatario dell'intestazione SOAP. La proprietà Direction è di tipo SoapHeaderDirection, che dispone di quattro valori: In, Out, InOut e Fault. Tali valori sono riferiti al destinatario (se è il server del servizio Web), al client, oppure a entrambi, e indicano se l'intestazione SOAP è inviata al client quando viene generata un'eccezione dal servizio Web.
Nota: la versione 1.0 di .NET Framework SDK non supporta il valore Fault.
Per modificare il destinatario dell'intestazione SOAP
Definire l’intestazione 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
Aggiungere una variabile alla classe che implementa il servizio 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
Applicare un attributo SoapHeader a ogni metodo del servizio Web che elabora l'intestazione SOAP. Impostare la proprietà Direction su ogni destinatario desiderato utilizzando l'enumerazione SoapHeaderDirection. Nell’esempio seguente, il client del servizio Web viene configurato come il destinatario impostando Direction su SoapHeaderDirection.Out.
[WebMethod] [SoapHeader("myOutHeader",Direction=SoapHeaderDirection.Out)]
<WebMethod, _ SoapHeader("myOutHeader",Direction:=SoapHeaderDirection.Out)>
Elaborare o impostare l'intestazione SOAP, a seconda del destinatario. Nell'esempio di codice seguente, poiché il destinatario è il client del servizio Web, vengono impostati i valori dell'intestazione SOAP,.
// Return the client's authenticated name. myOutHeader.Username = User.Identity.Name;
' Return the client's authenticated name. myOutHeader.Username = User.Identity.Name
Esempio
Nell'esempio di codice seguente viene definita un'intestazione SOAP MyHeader
che è inviata dal metodo del servizio Web al 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
Vedere anche
Riferimenti
SoapHeader
SoapHeaderAttribute
SoapUnknownHeader
SoapHeaderException
Concetti
Creazione di client dei servizi Web XML
Altre risorse
Utilizzo delle intestazioni SOAP
Creare servizi Web XML mediante ASP.NET
Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.