Megosztás a következőn keresztül:


Egyéni kötési megbízható munkamenet HTTPS-en keresztül

A ReliableSessionOverHttps minta bemutatja az SSL átviteli biztonság használatát a Reliable Sessions használatával. A Reliable Sessions implementálja a WS-Reliable Messaging protokollt. A WS-Security megbízható munkameneteken keresztüli írásával biztonságos, megbízható munkameneteket hozhat létre. Néha azonban dönthet úgy, hogy a HTTP átviteli biztonságát SSL-lel használja.

Minta részletei

Az SSL biztosítja, hogy maguk a csomagok biztonságban legyenek. Fontos megjegyezni, hogy ez eltér attól, hogy a WS-Secure Conversation használatával biztonságossá tegye a megbízható munkamenetet.

Ahhoz, hogy megbízható munkamenetet használhasson HTTPS-en keresztül, létre kell hoznia egy egyéni kötést. Ez a minta a számológép szolgáltatást megvalósító első lépéseken alapul. A rendszer egy egyéni kötést hoz létre a megbízható munkamenet-kötési elem és a <httpsTransport> használatával. Az alábbi konfiguráció az egyéni kötést tartalmazza.

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

A mintában szereplő programkód megegyezik az Első lépések szolgáltatással. A minta létrehozása és futtatása előtt létre kell hoznia egy tanúsítványt, és hozzá kell rendelnie a Webkiszolgáló tanúsítványvarázslóval. A konfigurációs fájlbeállítások végpontdefiníciója és kötésdefiníciója lehetővé teszi az egyéni kötés használatát az ügyfél alábbi mintakonfigurációjában látható módon.

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

A megadott cím a sémát https:// használja.

Mivel a mintában használt tanúsítvány egy teszttanúsítvány, amelyet Makecert.exe hoztak létre, biztonsági riasztás jelenik meg, amikor megpróbál hozzáférni egy https: címhez, például https://localhost/servicemodelsamples/service.svca böngészőből. Annak érdekében, hogy a Windows Communication Foundation (WCF) ügyfél egy teszttanúsítvánnyal működjön, hozzáadtunk néhány további kódot az ügyfélhez a biztonsági riasztás letiltásához. Ez a kód és a hozzá tartozó osztály nem szükséges éles tanúsítványok használatakor.

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

A minta futtatásakor a műveleti kérelmek és a válaszok megjelennek az ügyfélkonzol ablakában. Nyomja le az ENTER billentyűt az ügyfélablakban az ügyfél leállításához.

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.

A minta beállítása, összeállítása és futtatása

  1. Telepítse a ASP.NET 4.0-t az alábbi paranccsal.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták egyszeri beállítási eljárását.

  3. Győződjön meg arról, hogy elvégezte az Internet Information Services (IIS) kiszolgálótanúsítvány telepítési utasításait.

  4. A megoldás C# vagy Visual Basic .NET kiadásának létrehozásához kövesse a Windows Communication Foundation-minták készítéséhez szükséges utasításokat.

  5. Ha a mintát egy vagy több gép közötti konfigurációban szeretné futtatni, kövesse a Windows Communication Foundation-minták futtatásával kapcsolatos utasításokat.