Delen via


WS Transport Security

Het voorbeeld wsTransportSecurity demonstreert het gebruik van SSL-transportbeveiliging met de WSHttpBinding binding. De binding biedt standaard wsHttpBinding HTTP-communicatie. Wanneer deze is geconfigureerd voor transportbeveiliging, ondersteunt de binding HTTPS-communicatie. Dit voorbeeld is gebaseerd op de Aan de slag die een rekenmachineservice implementeert. Het wsHttpBinding is opgegeven en geconfigureerd in de toepassingsconfiguratiebestanden voor de client en service.

Notitie

De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.

De programmacode in het voorbeeld is identiek aan die van de Aan de slag-service . U moet een certificaat maken en toewijzen met behulp van de wizard Webservercertificaat voordat u het voorbeeld bouwt en uitvoert. De eindpuntdefinitie en bindingsdefinitie in de configuratiebestandsinstellingen schakelen Transport de beveiligingsmodus in, zoals wordt weergegeven in de volgende voorbeeldconfiguratie voor de client.

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

Het opgegeven adres maakt gebruik van het https:// schema. De bindingsconfiguratie stelt de beveiligingsmodus in op Transport. Dezelfde beveiligingsmodus moet worden opgegeven in het web.config-bestand van de service.

Omdat het certificaat dat in dit voorbeeld wordt gebruikt, een testcertificaat is dat is gemaakt met Makecert.exe, wordt er een beveiligingswaarschuwing weergegeven wanneer u probeert toegang te krijgen tot een https: adres, zoals https://localhost/servicemodelsamples/service.svc, vanuit uw browser. Als u wilt dat de WCF-client (Windows Communication Foundation) werkt met een testcertificaat, is er extra code toegevoegd aan de client om de beveiligingswaarschuwing te onderdrukken. Deze code en de bijbehorende klasse zijn niet vereist bij het gebruik van productiecertificaten.

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

Wanneer u het voorbeeld uitvoert, worden de bewerkingsaanvragen en -antwoorden weergegeven in het clientconsolevenster. Druk op Enter in het clientvenster om de client af te sluiten.

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.

Het voorbeeld instellen, compileren en uitvoeren

  1. Installeer ASP.NET 4.0 met de volgende opdracht.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Zorg ervoor dat u de eenmalige installatieprocedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.

  3. Zorg ervoor dat u de installatie-instructies voor iis-servercertificaten (Internet Information Services) hebt uitgevoerd.

  4. Als u de C# of Visual Basic .NET-editie van de oplossing wilt bouwen, volgt u de instructies in het bouwen van de Windows Communication Foundation-voorbeelden.

  5. Als u het voorbeeld wilt uitvoeren in een configuratie met één of meerdere computers, volgt u de instructies in Het uitvoeren van de Windows Communication Foundation-voorbeelden.