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.svc
a 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
Telepítse a ASP.NET 4.0-t az alábbi paranccsal.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
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.
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.
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.
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.