Dela via


WS Transport Security

Exemplet wsTransportSecurity visar användningen av SSL-transportsäkerhet med bindningenWSHttpBinding. Som standard tillhandahåller bindningen wsHttpBinding HTTP-kommunikation. När bindningen har konfigurerats för transportsäkerhet stöder den HTTPS-kommunikation. Det här exemplet baseras på komma igång som implementerar en kalkylatortjänst. wsHttpBinding Anges och konfigureras i programkonfigurationsfilerna för klienten och tjänsten.

Kommentar

Konfigurationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.

Programkoden i exemplet är identisk med koden för komma igång-tjänsten . Du måste skapa ett certifikat och tilldela det med hjälp av guiden Webbservercertifikat innan du skapar och kör exemplet. Slutpunktsdefinitionen och bindningsdefinitionen i konfigurationsfilens inställningar aktiverar Transport säkerhetsläge, enligt följande exempelkonfiguration för klienten.

<system.serviceModel>

    <client>
      <!-- this endpoint has an https: address -->
      <endpoint address="https://localhost/servicemodelsamples/service.svc" binding="wsHttpBinding" bindingConfiguration="Binding1" contract="Microsoft.Samples.TransportSecurity.ICalculator"/>
    </client>

    <bindings>
      <wsHttpBinding>
        <!-- configure wsHttpbinding with Transport security mode
                   and clientCredentialType as None -->
        <binding name="Binding1">
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>

  </system.serviceModel>

Den angivna adressen använder schemat https:// . Bindningskonfigurationen anger säkerhetsläget till Transport. Samma säkerhetsläge måste anges i tjänstens Web.config-fil.

Eftersom certifikatet som används i det här exemplet är ett testcertifikat som skapats med Makecert.exe visas en säkerhetsavisering när du försöker komma åt en https: -adress, till exempel https://localhost/servicemodelsamples/service.svc, från webbläsaren. Om du vill tillåta att WCF-klienten (Windows Communication Foundation) fungerar med ett testcertifikat på plats har ytterligare kod lagts till i klienten för att förhindra säkerhetsaviseringen. Den här koden och den tillhörande klassen krävs inte när du använder produktionscertifikat.

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

När du kör exemplet visas åtgärdsbegäranden och svar i klientkonsolfönstret. Tryck på RETUR i klientfönstret för att stänga av klienten.

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.

Så här konfigurerar du, skapar och kör exemplet

  1. Installera ASP.NET 4.0 med hjälp av följande kommando.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Kontrollera att du har utfört engångsinstallationsproceduren för Windows Communication Foundation-exempel.

  3. Kontrollera att du har utfört installationsanvisningarna för IIS-servercertifikatet (Internet Information Services).

  4. Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.

  5. Om du vill köra exemplet i en konfiguration med en eller flera datorer följer du anvisningarna i Köra Windows Communication Foundation-exempel.