Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

SoapHeader-Klasse

Aktualisiert: November 2007

Stellt beim Überschreiben in einer abgeleiteten Klasse den Inhalt eines SOAP-Headers dar.

Namespace:  System.Web.Services.Protocols
Assembly:  System.Web.Services (in System.Web.Services.dll)

public abstract class SoapHeader
public abstract class SoapHeader
public abstract class SoapHeader

SOAP-Header bieten eine Methode zum Übergeben von Daten an eine XML-Webdienstmethode und zum Empfangen von Daten aus einer XML-Webdienstmethode, sofern die Daten nicht direkt mit der primären Funktion der XML-Webdienstmethode in Zusammenhang stehen. Ein XML-Webdienst kann z. B. mehrere XML-Webdienstmethoden enthalten, von denen jede ein benutzerdefiniertes Authentifizierungsschema erfordert. Anstatt in allen XML-Webdienstmethoden Parameter für das benutzerdefinierte Authentifizierungsschema hinzuzufügen, kann ein SoapHeaderAttribute auf die einzelnen XML-Webdienstmethoden angewendet werden, das auf eine vom SoapHeader abgeleitete Klasse verweist. Die Implementierung für die vom SoapHeader abgeleitete Klasse behandelt das benutzerdefinierte Authentifizierungsschema. Auf diese Art und Weise implementiert die XML-Webdienstmethode nur die für sie spezifischen Funktionen und fügt unter Verwendung eines SOAP-Headers zusätzliche Funktionen hinzu.

Die folgende Liste gibt eine Übersicht über die grundlegenden Schritte zum Empfangen und Verarbeiten eines SOAP-Headers:

  1. Erstellen Sie eine von SoapHeader abgeleitete Klasse, die die an den SOAP-Header übergebenen Daten darstellt.

  2. Fügen Sie der Klasse, die einen XML-Webdienst oder eine Proxyklasse eines XML-Webdienstclients implementiert, einen Member hinzu, der dem im ersten Schritt erstellten Typ entspricht.

  3. Wenden Sie ein SoapHeaderAttribute auf die XML-Webdienstmethode oder die entsprechende Methode in der Proxyklasse an, und geben Sie dabei in der MemberName-Eigenschaft den im zweiten Schritt erstellten Member an.

  4. Greifen Sie im Code der XML-Webdienstmethode oder des XML-Webdienstclients auf die MemberName-Eigenschaft zu, um die im SOAP-Header gesendeten Daten zu verarbeiten.

Vom folgenden XML-Webdienst MyWebService wird der SOAP-Header MyHeader definiert, und es wird festgelegt, dass dieser bei jedem Aufruf der XML-Webdienstmethode MyWebMethod mitgesendet werden muss. Darüber hinaus empfängt MyWebMethod alle SOAP-Header mit Ausnahme von MyHeader.

<%@ WebService Language="C#" Class="MyWebService"%>
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml;
using System;

// Define a SOAP header by deriving from the SoapHeader base class.

public class MyHeader : SoapHeader {
    public string MyValue;
}

public class MyWebService {

    public MyHeader myHeader;
    // Receive all SOAP headers besides the MyHeader SOAP header.
    public SoapUnknownHeader[] unknownHeaders;

    [WebMethod]
    [SoapHeader("myHeader", Direction=SoapHeaderDirection.InOut)]

    //Receive any SOAP headers other than MyHeader.
    [SoapHeader("unknownHeaders",Required=false)]

    public string MyWebMethod() {

       foreach (SoapUnknownHeader header in unknownHeaders) {
           // Perform some processing on the header.
       if (header.Element.Name == "MyKnownHeader")
               header.DidUnderstand = true;
       else
                // For those headers that cannot be  
                // processed, set the DidUnderstand property to false.
                header.DidUnderstand = false;
       }
       return "Hello";
    }
}



Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 3.5, 2.0, 1.0
Anzeigen: