İngilizce dilinde oku

Aracılığıyla paylaş


WSHttpBinding Sınıf

Tanım

Dağıtılmış işlemleri ve güvenli, güvenilir oturumları destekleyen birlikte çalışabilir bir bağlamayı temsil eder.

C#
public class WSHttpBinding : System.ServiceModel.WSHttpBindingBase
Devralma
Türetilmiş

Örnekler

Aşağıdaki örnek kod, sınıfının nasıl kullanılacağını WSHttpBinding gösterir.

C#
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();
    }
}

Açıklamalar

WSHttpBinding ile benzerdirBasicHttpBinding, ancak daha fazla Web hizmeti özelliği sağlar. HTTP aktarımını kullanır ve ileti güvenliği sağlar, ancak aynı zamanda varsayılan olarak BasicHttpBindingetkinleştirilen veya tek bir denetim ayarıyla kullanılabilen işlemler, güvenilir mesajlaşma ve WS-Adresleme de sağlar.

Oluşturucular

WSHttpBinding()

WSHttpBinding sınıfının yeni bir örneğini başlatır.

WSHttpBinding(SecurityMode)

Bağlama tarafından kullanılan belirtilen güvenlik türüyle sınıfının yeni bir örneğini WSHttpBinding başlatır.

WSHttpBinding(SecurityMode, Boolean)

Bağlama tarafından kullanılan belirtilen türde bir güvenlik ve güvenilir bir oturumun etkinleştirilip etkinleştirilmediğini belirten bir değerle sınıfının yeni bir örneğini WSHttpBinding başlatır.

WSHttpBinding(String)

Yapılandırma adıyla belirtilen bir bağlama ile sınıfının yeni bir örneğini WSHttpBinding başlatır.

Özellikler

AllowCookies

WCF istemcisinin tek bir web hizmeti tarafından gönderilen tanımlama bilgilerini otomatik olarak depolayıp yeniden göndermeyeceğini belirten bir değer alır veya ayarlar.

BypassProxyOnLocal

Yerel adresler için ara sunucunun atlanıp atlanmayacağını belirten bir değer alır veya ayarlar.

(Devralındığı yer: WSHttpBindingBase)
CloseTimeout

Aktarım özel durum oluşturmadan önce bağlantının kapatılması için sağlanan zaman aralığını alır veya ayarlar.

(Devralındığı yer: Binding)
EnvelopeVersion

Bu bağlama tarafından işlenen iletiler için kullanılan SOAP sürümünü alır.

(Devralındığı yer: WSHttpBindingBase)
HostNameComparisonMode

URI'yi eşleştirirken ana bilgisayar adının hizmete ulaşmak için kullanılıp kullanılmadığını belirten bir değer alır veya ayarlar.

(Devralındığı yer: WSHttpBindingBase)
MaxBufferPoolSize

Bu bağlamayı kullanarak uç noktaların gerektirdiği arabellekleri yöneten arabellek yöneticisi için ayrılan bellek miktarını bayt cinsinden alır veya ayarlar.

(Devralındığı yer: WSHttpBindingBase)
MaxReceivedMessageSize

Bağlama tarafından işlenebilen bir ileti için bayt cinsinden en büyük boyutu alır veya ayarlar.

(Devralındığı yer: WSHttpBindingBase)
MessageEncoding

SOAP iletilerini kodlamak için MTOM veya Text/XML kullanılıp kullanılmayacağını alır veya ayarlar.

(Devralındığı yer: WSHttpBindingBase)
MessageVersion

Bağlama ile yapılandırılan istemciler ve hizmetler tarafından kullanılan ileti sürümünü alır.

(Devralındığı yer: Binding)
Name

Bağlamanın adını alır veya ayarlar.

(Devralındığı yer: Binding)
Namespace

Bağlamanın XML ad alanını alır veya ayarlar.

(Devralındığı yer: Binding)
OpenTimeout

Aktarım özel durum oluşturmadan önce bağlantının açılması için sağlanan zaman aralığını alır veya ayarlar.

(Devralındığı yer: Binding)
ProxyAddress

HTTP ara sunucusunun URI adresini alır veya ayarlar.

(Devralındığı yer: WSHttpBindingBase)
ReaderQuotas

Bu bağlamayla yapılandırılan uç noktalar tarafından işlenebilen SOAP iletilerinin karmaşıklığıyla ilgili kısıtlamaları alır veya ayarlar.

(Devralındığı yer: WSHttpBindingBase)
ReceiveTimeout

Bağlantının devre dışı bırakılmadan önce hiçbir uygulama iletisinin alınmadığı devre dışı kalabileceği süreyi alır veya ayarlar.

(Devralındığı yer: Binding)
ReliableSession

Sistem tarafından sağlanan bağlamalardan birini kullanırken kullanılabilen güvenilir bir oturum bağlama öğesinin özelliklerine kolay erişim sağlayan bir nesnesi alır.

(Devralındığı yer: WSHttpBindingBase)
Scheme

Bu bağlama ile yapılandırılan kanallar ve dinleyiciler için URI aktarım şemasını alır.

(Devralındığı yer: WSHttpBindingBase)
Security

Bu bağlama ile kullanılan güvenlik ayarlarını alır.

SendTimeout

Aktarım özel durum oluşturmadan önce yazma işleminin tamamlanması için sağlanan zaman aralığını alır veya ayarlar.

(Devralındığı yer: Binding)
TextEncoding

İleti metni için kullanılan karakter kodlamasını alır veya ayarlar.

(Devralındığı yer: WSHttpBindingBase)
TransactionFlow

Bu bağlamanın akış WS-Transactions'i desteklemesi gerekip gerekmediğini belirten bir değer alır veya ayarlar.

(Devralındığı yer: WSHttpBindingBase)
UseDefaultWebProxy

Varsa, sistemin otomatik olarak yapılandırılmış HTTP proxy'sinin kullanılıp kullanılmayacağını belirten bir değer alır veya ayarlar.

(Devralındığı yer: WSHttpBindingBase)

Yöntemler

BuildChannelFactory<TChannel>(BindingParameterCollection)

İstemcide belirtilen kanal türünü oluşturan ve bağlama parametreleri koleksiyonu tarafından belirtilen özellikleri karşılayan kanal fabrika yığınını oluşturur.

BuildChannelFactory<TChannel>(BindingParameterCollection)

İstemcide belirtilen kanal türünü oluşturan ve bağlama parametreleri koleksiyonu tarafından belirtilen özellikleri karşılayan kanal fabrika yığınını oluşturur.

(Devralındığı yer: Binding)
BuildChannelFactory<TChannel>(Object[])

Belirtilen kanal türünü oluşturan ve bir nesne dizisi tarafından belirtilen özellikleri karşılayan istemcide kanal fabrika yığınını oluşturur.

(Devralındığı yer: Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Belirtilen kanal türünü kabul eden ve bağlama parametreleri koleksiyonu tarafından belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

(Devralındığı yer: Binding)
BuildChannelListener<TChannel>(Object[])

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

(Devralındığı yer: Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

(Devralındığı yer: Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

(Devralındığı yer: Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

(Devralındığı yer: Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

(Devralındığı yer: Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

(Devralındığı yer: Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

(Devralındığı yer: Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Geçerli bağlamanın istemcide belirtilen bağlama parametrelerinin koleksiyonunu karşılayan bir kanal fabrika yığını oluşturup oluşturamayacağını belirten bir değer döndürür.

(Devralındığı yer: Binding)
CanBuildChannelFactory<TChannel>(Object[])

Geçerli bağlamanın istemcide bir nesne dizisi tarafından belirtilen gereksinimleri karşılayan bir kanal fabrika yığını oluşturup oluşturamayacağını gösteren bir değer döndürür.

(Devralındığı yer: Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Geçerli bağlamanın hizmette belirtilen bağlama parametreleri koleksiyonunu karşılayan bir kanal dinleyici yığını oluşturup oluşturamayacağını belirten bir değer döndürür.

(Devralındığı yer: Binding)
CanBuildChannelListener<TChannel>(Object[])

Geçerli bağlamanın hizmette bir nesne dizisinde belirtilen ölçütleri karşılayan bir kanal dinleyici yığını oluşturup oluşturamayacağını belirten bir değer döndürür.

(Devralındığı yer: Binding)
CreateBindingElements()

Geçerli bağlamada yer alan bağlama öğelerinin sıralı bir koleksiyonunu döndürür.

CreateMessageSecurity()

Geçerli bağlamadan güvenlik bağlama öğesini döndürür.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetProperty<T>(BindingParameterCollection)

Varsa, bağlama yığınındaki uygun katmandan istenen türlenmiş bir nesne döndürür.

(Devralındığı yer: Binding)
GetTransport()

Geçerli bağlamadan aktarım bağlama öğesini döndürür.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ShouldSerializeName()

Bağlama adının seri hale getirilip getirilmeyeceğini döndürür.

(Devralındığı yer: Binding)
ShouldSerializeNamespace()

Bağlamanın ad alanının seri hale getirilip getirilmeyeceğini döndürür.

(Devralındığı yer: Binding)
ShouldSerializeReaderQuotas()

Özelliğin varsayılan değerinden ReaderQuotas değiştirilip değiştirilmediğini ve seri hale getirilip getirilmeyeceğini belirten bir değer döndürür.

(Devralındığı yer: WSHttpBindingBase)
ShouldSerializeReliableSession()

Özelliğin varsayılan değerinden ReliableSession değiştirilip değiştirilmediğini ve seri hale getirilip getirilmeyeceğini belirten bir değer döndürür.

(Devralındığı yer: WSHttpBindingBase)
ShouldSerializeSecurity()

Özelliğin varsayılan değerinden Security değiştirilip değiştirilmediğini ve seri hale getirilip getirilmeyeceğini belirten bir değer döndürür.

ShouldSerializeTextEncoding()

Özelliğin varsayılan değerinden TextEncoding değiştirilip değiştirilmediğini ve seri hale getirilip getirilmeyeceğini belirten bir değer döndürür.

(Devralındığı yer: WSHttpBindingBase)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

IBindingRuntimePreferences.ReceiveSynchronously

Gelen isteklerin zaman uyumlu olarak mı yoksa zaman uyumsuz olarak mı işlendiğini gösteren bir değer alır.

(Devralındığı yer: WSHttpBindingBase)

Şunlara uygulanır

Ürün Sürümler
.NET 8
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1