Aracılığıyla paylaş


HTTPS üzerinden Özelleştirilmiş Bağlama Güvenilir Oturum

ReliableSessionOverHttps örneği, Reliable Sessions ile SSL aktarım güvenliğinin kullanımını gösterir. Reliable Sessions, WS-Reliable Mesajlaşma protokollerini uygular. Güvenilir Oturumlar üzerinden WS-Security oluşturarak güvenli bir güvenilir oturum oluşturabilirsiniz. Ancak bazen BUNUN yerine SSL ile HTTP aktarım güvenliğini kullanmayı seçebilirsiniz.

Örnek Ayrıntılar

SSL, paketlerin güvenliğinin sağlanmasını sağlar. Bunun, WS-Secure Konuşma kullanarak güvenilir oturumun güvenliğini sağlamaktan farklı olduğunu unutmayın.

HTTPS üzerinden güvenilir oturum kullanmak için özel bir bağlama oluşturmanız gerekir. Bu örnek, hesap makinesi hizmeti uygulayan Getting Started'a dayanmaktadır. Güvenilir oturum bağlama öğesi ve <httpsTransport> kullanılarak özel bir bağlama oluşturulur. Aşağıdaki yapılandırma özel bir bağlamaya aittir.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service
          name="Microsoft.ServiceModel.Samples.CalculatorService"
          behaviorConfiguration="CalculatorServiceBehavior">
        <!-- use base address provided by host -->
        <endpoint address=""
                  binding="customBinding"
                  bindingConfiguration="reliableSessionOverHttps"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <!-- the mex endpoint is exposed as http://localhost/servicemodelsamples/service.svc/mex-->
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange"/>
      </service>
    </services>

    <bindings>
      <customBinding>
        <binding name="reliableSessionOverHttps">
          <reliableSession />
          <httpsTransport />
        </binding>
      </customBinding>
    </bindings>

    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior name="CalculatorServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>

</configuration>

Örnekteki program kodu , Başlarken hizmetinin koduyla aynıdır. Örneği oluşturup çalıştırmadan önce bir sertifika oluşturup Web Sunucusu Sertifika Sihirbazı'nı kullanarak atamalısınız. Yapılandırma dosyası ayarlarındaki uç nokta tanımı ve bağlama tanımı, istemci için aşağıdaki örnek yapılandırmada gösterildiği gibi özel bağlama kullanımını etkinleştirir.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>

    <client>
      <!-- this endpoint has an https: address -->
      <endpoint name=""
                address="https://localhost/servicemodelsamples/service.svc"
                binding="customBinding"
                bindingConfiguration="reliableSessionOverHttps"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </client>

      <bindings>
        <customBinding>
          <binding name="reliableSessionOverHttps">
            <reliableSession />
            <httpsTransport />
          </binding>
        </customBinding>
    </bindings>

  </system.serviceModel>

</configuration>

Belirtilen adres şemayı https:// kullanır.

Bu örnekte kullanılan sertifika Makecert.exeile oluşturulmuş bir test sertifikası olduğundan tarayıcınızdan https: adresi gibi https://localhost/servicemodelsamples/service.svcbir https: adresine erişmeye çalıştığınızda bir güvenlik uyarısı görüntülenir. Windows Communication Foundation (WCF) istemcisinin yerinde bir test sertifikasıyla çalışmasına izin vermek için, güvenlik uyarısını engellemek için istemciye bazı ek kodlar eklenmiştir. Bu kod ve eşlik eden sınıf, üretim sertifikaları kullanılırken gerekli değildir.

// This code is required only for test certificates like those created by Makecert.exe.
PermissiveCertificatePolicy.Enact("CN=ServiceModelSamples-HTTPS-Server");

Örneği çalıştırdığınızda, işlem istekleri ve yanıtları istemci konsolu penceresinde görüntülenir. İstemciyi kapatmak için istemci penceresinde ENTER tuşuna basın.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

Örneği ayarlamak, derlemek ve çalıştırmak için

  1. Aşağıdaki komutu kullanarak ASP.NET 4.0'ı yükleyin.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Windows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamını yaptığınızdan emin olun.

  3. Internet Information Services (IIS) Sunucu Sertifikası Yükleme Yönergelerini gerçekleştirdiğinizden emin olun.

  4. Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örneklerioluşturma başlığındaki yönergeleri izleyin.

  5. Örneği tek bir makine veya makineler arası bir yapılandırmada çalıştırmak için, Windows Communication Foundation örneklerini çalıştırmayönergelerini izleyin.