Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

WSHttpBinding-Klasse

Stellt eine interoperable Bindung dar, die verteilte Transaktionen und sichere, zuverlässige Sitzungen unterstützt.

Namespace:  System.ServiceModel
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public class WSHttpBinding : WSHttpBindingBase

Der WSHttpBinding-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeWSHttpBinding()Initialisiert eine neue Instanz der WSHttpBinding-Klasse.
Öffentliche MethodeWSHttpBinding(SecurityMode)Initialisiert eine neue Instanz der WSHttpBinding-Klasse mit einem von der Bindung verwendeten Sicherheitstyp.
Öffentliche MethodeWSHttpBinding(String)Initialisiert eine neue Instanz der WSHttpBinding-Klasse mit einer durch ihren Konfigurationsnamen angegebenen Bindung.
Öffentliche MethodeWSHttpBinding(SecurityMode, Boolean)Initialisiert eine neue Instanz der WSHttpBinding-Klasse mit einem von der Bindung verwendeten Sicherheitstyp und einem Wert, der angibt, ob eine zuverlässige Sitzung aktiviert ist.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftAllowCookiesDient zum Abrufen oder Festlegen eines Werts, der angibt, ob der WCF-Client automatisch alle Cookies speichert und erneut sendet, die von einem einzelnen Webdienst gesendet werden.
Öffentliche EigenschaftBypassProxyOnLocalRuft einen Wert ab, der angibt, ob der Proxyserver bei lokalen Adressen umgangen werden soll, oder legt diesen fest. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftCloseTimeoutRuft das Zeitintervall ab, das für eine Verbindung eingerichtet ist, die geschlossen wird, bevor ein Transport eine Ausnahme auslöst, oder legt dieses fest. (Von Binding geerbt.)
Öffentliche EigenschaftEnvelopeVersionRuft die SOAP-Version ab, die für Nachrichten verwendet wird, die von dieser Bindung verarbeitet werden. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftHostNameComparisonModeRuft einen Wert ab oder legt einen Wert fest, der angibt, ob der Hostname zum Erreichen des Diensts bei übereinstimmendem URI verwendet werden soll. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftMaxBufferPoolSizeRuft die maximale Speicherkapazität in Byte für den Puffer-Manager ab, der die Puffer verwaltet, die für die von dieser Bindung verwendeten Endpunkte erforderlich sind, oder legt sie fest. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftMaxReceivedMessageSizeRuft die maximale Größe in Byte für eine Nachricht ab, die von der Bindung verarbeitet werden kann, oder legt sie fest. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftMessageEncodingRuft ab oder legt fest, ob MTOM oder Text/XML verwendet wird, um SOAP-Nachrichten zu codieren. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftMessageVersionRuft die Nachrichtenversion ab, die von den Clients und Diensten verwendet wird, die mit der Bindung konfiguriert wurden. (Von Binding geerbt.)
Öffentliche EigenschaftNameRuft den Namen der Bindung ab oder legt diesen fest. (Von Binding geerbt.)
Öffentliche EigenschaftNamespaceRuft den XML-Namespace einer Bindung ab oder legt diesen fest. (Von Binding geerbt.)
Öffentliche EigenschaftOpenTimeoutRuft das Zeitintervall ab, das für eine Verbindung eingerichtet ist, die geöffnet wird, bevor ein Transport eine Ausnahme auslöst, oder legt dieses fest. (Von Binding geerbt.)
Öffentliche EigenschaftProxyAddressRuft die URI-Adresse des HTTP-Proxys ab oder legt sie fest. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftReaderQuotasRuft Beschränkungen der Komplexität von SOAP-Nachrichten ab oder legt Beschränkungen fest, die von Endpunkten verarbeitet werden können, die mit dieser Bindung konfiguriert werden. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftReceiveTimeoutRuft ein Zeitintervall ab oder legt ein Zeitintervall fest, während dessen eine Verbindung inaktiv bleiben kann und keine Anwendungsnachrichten empfangen werden, bevor sie verworfen werden. (Von Binding geerbt.)
Öffentliche EigenschaftReliableSessionRuft ein Objekt ab, das komfortablen Zugriff auf die Eigenschaften eines Bindungselements einer zuverlässigen Sitzung bietet, die bei Verwendung einer der vom System bereitgestellten Bindungen verfügbar sind. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftSchemeRuft das URI-Transportschema für die Kanäle und die Listener ab, die mit dieser Bindung konfiguriert werden. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftSecurityRuft die Sicherheitseinstellungen ab, die mit dieser Bindung verwendet werden.
Öffentliche EigenschaftSendTimeoutRuft das Zeitintervall ab, das für einen Schreibvorgang eingerichtet ist, der abgeschlossen wird, bevor ein Transport eine Ausnahme auslöst, oder legt dieses fest. (Von Binding geerbt.)
Öffentliche EigenschaftTextEncodingRuft die Zeichencodierung ab oder legt die Zeichencodierung fest, die für den Nachrichtentext verwendet wird. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftTransactionFlowRuft einen Wert ab oder legt einen Wert fest, der angibt, ob diese Bindung fließende WS-Transaktionen unterstützt. (Von WSHttpBindingBase geerbt.)
Öffentliche EigenschaftUseDefaultWebProxyRuft einen Wert ab oder legt einen Wert fest, der angibt, ob der automatisch konfigurierte HTTP-Proxy des Systems bei Verfügbarkeit verwendet werden soll. (Von WSHttpBindingBase geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeBuildChannelFactory<TChannel>(BindingParameterCollection)Erstellt den Kanalfactorystapel auf dem Client, der einen festgelegten Kanaltyp erstellt und der die Funktionen erfüllt, die von einer Auflistung von Bindungsparametern festgelegt werden. (Überschreibt Binding.BuildChannelFactory<TChannel>(BindingParameterCollection).)

In .NET Framework Client Profile 4 wird dieser Member von Binding geerbt.BuildChannelFactory<TChannel>(BindingParameterCollection).
Öffentliche MethodeBuildChannelFactory<TChannel>(Object[])Erstellt den Kanalfactorystapel auf dem Client, der einen festgelegten Kanaltyp erstellt und der die Funktionen erfüllt, die von einem Objektarray festgelegt werden. (Von Binding geerbt.)
Öffentliche MethodeBuildChannelListener<TChannel>(BindingParameterCollection)Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die Funktionen erfüllt, die von einer Auflistung von Bindungsparametern festgelegt werden. (Von Binding geerbt.)
Öffentliche MethodeBuildChannelListener<TChannel>(Object[])Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. (Von Binding geerbt.)
Öffentliche MethodeBuildChannelListener<TChannel>(Uri, Object[])Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. (Von Binding geerbt.)
Öffentliche MethodeBuildChannelListener<TChannel>(Uri, BindingParameterCollection)Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. (Von Binding geerbt.)
Öffentliche MethodeBuildChannelListener<TChannel>(Uri, String, Object[])Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. (Von Binding geerbt.)
Öffentliche MethodeBuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. (Von Binding geerbt.)
Öffentliche MethodeBuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. (Von Binding geerbt.)
Öffentliche MethodeBuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. (Von Binding geerbt.)
Öffentliche MethodeCanBuildChannelFactory<TChannel>(BindingParameterCollection)Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanalfactorystapel auf dem Client erstellen kann, der die Auflistung festgelegter Bindungsparameter erfüllt. (Von Binding geerbt.)
Öffentliche MethodeCanBuildChannelFactory<TChannel>(Object[])Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanalfactorystapel auf dem Client erstellen kann, der die von einem Objektarray festgelegten Anforderungen erfüllt. (Von Binding geerbt.)
Öffentliche MethodeCanBuildChannelListener<TChannel>(BindingParameterCollection)Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanallistenerstapel auf dem Dienst erstellen kann, der die Auflistung festgelegter Bindungsparameter erfüllt. (Von Binding geerbt.)
Öffentliche MethodeCanBuildChannelListener<TChannel>(Object[])Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanallistenerstapel auf dem Dienst erstellen kann, der die in einem Objektarray festgelegten Kriterien erfüllt. (Von Binding geerbt.)
Öffentliche MethodeCreateBindingElementsGibt eine geordnete Auflistung von Bindungselementen zurück, die in der aktuellen Bindung enthalten sind. (Überschreibt WSHttpBindingBase.CreateBindingElements().)
Geschützte MethodeCreateMessageSecurityGibt das Sicherheitsbindungselement von der aktuellen Bindung zurück. (Überschreibt WSHttpBindingBase.CreateMessageSecurity().)
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetProperty<T>Gibt ggf. ein angefordertes typisiertes Objekt von der entsprechenden Ebene im Bindungsstapel zurück. (Von Binding geerbt.)
Geschützte MethodeGetTransportGibt das Transportbindungselement von der aktuellen Bindung zurück. (Überschreibt WSHttpBindingBase.GetTransport().)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeShouldSerializeNameGibt einen Wert zurück, der angibt, ob der Name der Bindung serialisiert werden soll. (Von Binding geerbt.)
Öffentliche MethodeShouldSerializeNamespaceGibt einen Wert zurück, der angibt, ob der Namespace der Bindung serialisiert werden soll. (Von Binding geerbt.)
Öffentliche MethodeShouldSerializeReaderQuotasGibt einen Wert zurück, der angibt, ob der Wert der ReaderQuotas-Eigenschaft in einen anderen Wert als den Standardwert geändert wurde und serialisiert werden soll. (Von WSHttpBindingBase geerbt.)
Öffentliche MethodeShouldSerializeReliableSessionGibt einen Wert zurück, der angibt, ob die ReliableSession-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll. (Von WSHttpBindingBase geerbt.)
Öffentliche MethodeShouldSerializeSecurityGibt einen Wert zurück, der angibt, ob die Security-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll.
Öffentliche MethodeShouldSerializeTextEncodingGibt einen Wert zurück, der angibt, ob die TextEncoding-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll. (Von WSHttpBindingBase geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate EigenschaftIBindingRuntimePreferences.ReceiveSynchronouslyRuft einen Wert ab, der angibt, ob eingehende Anforderungen synchron oder asynchron gehandhabt werden. (Von WSHttpBindingBase geerbt.)
Zum Seitenanfang

Die WSHttpBinding ist der BasicHttpBinding ähnlich, stellt jedoch mehr Webdienstfeatures bereit. Sie verwendet wie BasicHttpBinding den HTTP-Transport und stellt Nachrichtensicherheit bereit, bietet jedoch darüber hinaus Transaktionen, zuverlässiges Messaging und WS-Adressierung, entweder standardmäßig aktiviert oder über eine einziges Steuerelement verfügbar.

Im folgenden Beispielcode wird die Verwendung der WSHttpBinding-Klasse veranschaulicht.


using System;
using System.ServiceModel;
using System.Collections.Generic;
using System.IdentityModel.Tokens;
using System.Security.Cryptography.X509Certificates;
using System.ServiceModel.Channels;
using System.ServiceModel.Security;
using System.ServiceModel.Security.Tokens;
using System.Security.Permissions;

// Define a service contract for the calculator. 
[ServiceContract()]
public interface ICalculator
{
    [OperationContract(IsOneWay = false)]
    double Add(double n1, double n2);
    [OperationContract(IsOneWay = false)]
    double Subtract(double n1, double n2);
    [OperationContract(IsOneWay = false)]
    double Multiply(double n1, double n2);
    [OperationContract(IsOneWay = false)]
    double Divide(double n1, double n2);
}

public sealed class CustomBindingCreator
{

    public static void snippetSecurity()
    {
        WSHttpBinding wsHttpBinding = new WSHttpBinding();
        WSHttpSecurity whSecurity = wsHttpBinding.Security;
    }


    public static void snippetCreateBindingElements()
    {
        WSHttpBinding wsHttpBinding = new WSHttpBinding();
        BindingElementCollection beCollection = wsHttpBinding.CreateBindingElements();
    }


    private void snippetCreateMessageSecurity()
    {
        WSHttpBinding wsHttpBinding = new WSHttpBinding();
        // SecurityBindingElement sbe = wsHttpBinding
    }

    public static void snippetGetTransport()
    {
        WSHttpBinding wsHttpBinding = new WSHttpBinding();
        //		TransportBindingElement tbElement = wsHttpBinding.GetTransport();
    }

    public static void snippetAllowCookies()
    {
        WSHttpBinding wsHttpBinding = new WSHttpBinding();
        wsHttpBinding.AllowCookies = true;
    }

    public static Binding GetBinding()
    {
        // securityMode is Message
        // reliableSessionEnabled is true
        WSHttpBinding binding = new WSHttpBinding(SecurityMode.Message, true);
        binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;

        WSHttpSecurity security = binding.Security;
        return binding;

    }

    public static Binding GetBinding2()
    {

        // The security mode is set to Message.
        WSHttpBinding binding = new WSHttpBinding(SecurityMode.Message);
        binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
        return binding;

    }

    // This method creates a WSFederationHttpBinding.
    public static WSFederationHttpBinding CreateWSFederationHttpBinding()
    {
        // Create an instance of the WSFederationHttpBinding
        WSFederationHttpBinding b = new WSFederationHttpBinding();

        // Set the security mode to Message
        b.Security.Mode = WSFederationHttpSecurityMode.Message;

        // Set the Algorithm Suite to Basic256Rsa15
        b.Security.Message.AlgorithmSuite = SecurityAlgorithmSuite.Basic256Rsa15;

        // Set NegotiateServiceCredential to true
        b.Security.Message.NegotiateServiceCredential = true;

        // Set IssuedKeyType to Symmetric
        b.Security.Message.IssuedKeyType = SecurityKeyType.SymmetricKey;

        // Set IssuedTokenType to SAML 1.1
        b.Security.Message.IssuedTokenType = "http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#samlv1.1";

        // Extract the STS certificate from the certificate store
        X509Store store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
        store.Open(OpenFlags.ReadOnly);
        X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindByThumbprint, "cd 54 88 85 0d 63 db ac 92 59 05 af ce b8 b1 de c3 67 9e 3f", false);
        store.Close();

        // Create an EndpointIdentity from the STS certificate
        EndpointIdentity identity = EndpointIdentity.CreateX509CertificateIdentity(certs[0]);

        // Set the IssuerAddress using the address of the STS and the previously created EndpointIdentity
        b.Security.Message.IssuerAddress = new EndpointAddress(new Uri("http://localhost:8000/sts/x509"), identity);

        // Set the IssuerBinding to a WSHttpBinding loaded from config
        b.Security.Message.IssuerBinding = new WSHttpBinding("Issuer");

        // Set the IssuerMetadataAddress using the metadata address of the STS and the previously created EndpointIdentity
        b.Security.Message.IssuerMetadataAddress = new EndpointAddress(new Uri("http://localhost:8001/sts/mex"), identity);

        // Create a ClaimTypeRequirement
        ClaimTypeRequirement ctr = new ClaimTypeRequirement("http://example.org/claim/c1", false);

        // Add the ClaimTypeRequirement to ClaimTypeRequirements
        b.Security.Message.ClaimTypeRequirements.Add(ctr);

        // Return the created binding
        return b;
    }

}

// Service class which implements the service contract. 
public class CalculatorService : ICalculator
{
    public double Add(double n1, double n2)
    {
        double result = n1 + n2; return result;
    }
    public double Subtract(double n1, double n2)
    {
        double result = n1 - n2; return result;
    }
    public double Multiply(double n1, double n2)
    {
        double result = n1 * n2; return result;
    }
    public double Divide(double n1, double n2)
    {
        double result = n1 / n2; return result;
    }


    // Host the service within this EXE console application. 
    public static void Main()
    {
        // Create a WSHttpBinding and set its property values. 
        WSHttpBinding binding = new WSHttpBinding();
        binding.Name = "binding1";
        binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
        binding.Security.Mode = SecurityMode.Message;
        binding.ReliableSession.Enabled = false;
        binding.TransactionFlow = false;
        //Specify a base address for the service endpoint. 
        Uri baseAddress = new Uri(@"http://localhost:8000/servicemodelsamples/service");
        // Create a ServiceHost for the CalculatorService type 
        // and provide it with a base address. 
        ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);
        serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, baseAddress);
        // Open the ServiceHostBase to create listeners 
        // and start listening for messages. 
        serviceHost.Open();
        // The service can now be accessed. 
        Console.WriteLine("The service is ready.");
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine(); Console.ReadLine();
        // Close the ServiceHost to shutdown the service. 
        serviceHost.Close();
    }
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

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

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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft