Bagikan melalui


Pengikatan Khusus Sesi Terpercaya melalui HTTPS

Sampel ReliableSessionOverHttps menunjukkan penggunaan keamanan transportasi SSL dengan Reliable Sessions. Reliable Sessions mengimplementasikan protokol Olahpesan WS-Reliable. Anda dapat memiliki sesi andal yang aman dengan menyusun WS-Security melalui Reliable Sessions. Tetapi terkadang, Anda dapat memilih untuk menggunakan keamanan transportasi HTTP dengan SSL.

Detail Sampel

SSL memastikan bahwa paket itu sendiri diamankan. Penting untuk dicatat bahwa ini berbeda dari mengamankan sesi yang andal dengan menggunakan "Percakapan WS-Secure."

Untuk menggunakan sesi andal melalui HTTPS, Anda harus membuat pengikatan kustom. Sampel ini didasarkan pada Memulai yang mengimplementasikan layanan kalkulator. Pengikatan kustom dibuat menggunakan elemen pengikatan sesi yang andal dan <httpsTransport>. Konfigurasi berikut adalah pengikatan kustom.

<?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>

Kode program dalam sampel identik dengan layanan Memulai . Anda harus membuat sertifikat dan menetapkannya dengan menggunakan Panduan Sertifikat Server Web sebelum membuat dan menjalankan sampel. Definisi titik akhir dan definisi pengikatan dalam pengaturan file konfigurasi memungkinkan penggunaan pengikatan kustom seperti yang ditunjukkan dalam konfigurasi sampel berikut untuk klien.

<?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>

Alamat yang ditentukan menggunakan https:// skema .

Karena sertifikat yang digunakan dalam sampel ini adalah sertifikat pengujian yang dibuat dengan Makecert.exe, pemberitahuan keamanan muncul saat Anda mencoba mengakses alamat https: , seperti https://localhost/servicemodelsamples/service.svc, dari browser Anda. Untuk mengizinkan klien Windows Communication Foundation (WCF) bekerja dengan sertifikat pengujian, beberapa kode tambahan telah ditambahkan ke klien untuk menekan pemberitahuan keamanan. Kode ini, dan kelas yang menyertainya, tidak diperlukan saat menggunakan sertifikat produksi.

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

Saat Anda menjalankan sampel, permintaan dan respons operasi ditampilkan di jendela konsol klien. Tekan ENTER di jendela klien untuk mematikan klien.

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.

Untuk menyiapkan, mengompilasi, dan menjalankan sampel

  1. Instal ASP.NET 4.0 menggunakan perintah berikut.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Pastikan Anda telah melakukan Prosedur Penyiapan One-Time untuk Sampel Windows Communication Foundation.

  3. Pastikan Anda telah melakukan Instruksi Penginstalan Sertifikat Server Internet Information Services (IIS).

  4. Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti instruksi di Membangun Sampel Windows Communication Foundation.

  5. Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi di Menjalankan Sampel Windows Communication Foundation.