Compartilhar via


BasicBinding com segurança de transporte

O exemplo de TransportSecurity demonstra o uso da segurança de transporte SSL com a associação básica. Este exemplo baseia-se no Guia de Introdução que implementa um serviço de calculadora.

Detalhes de exemplo

Por padrão, a associação básica dá suporte à comunicação HTTP. O exemplo mostra como habilitar a segurança de transporte para a associação básica. Antes de executar o exemplo, você deve criar um certificado e atribuí-lo usando o Assistente de Certificado do Servidor Web.

Observação

O procedimento de instalação e as instruções de build para este exemplo estão localizados no final deste tópico.

O código do programa no exemplo é idêntico ao do serviço Introdução . A definição de ponto de extremidade e a definição de associação nas configurações do arquivo de configuração são modificadas para habilitar a comunicação segura, conforme mostrado na configuração de exemplo a seguir.

<system.serviceModel>
  <services>
    <service type="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <endpoint address=""
                binding="basicHttpBinding"
                bindingConfiguration="Binding1"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
   </services>
  <bindings>
    <basicHttpBinding>
      <!-- Configure basicHttpBinding with Transport security -->
      <!-- mode and clientCredentialType set to None. -->
      <binding name="Binding1">
        <security mode="Transport">
          <transport clientCredentialType="None"/>
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

Como o certificado usado neste exemplo é um certificado de teste criado com Makecert.exe, um alerta de segurança é exibido quando você tenta acessar um endereço HTTPS: no navegador, como https://localhost/servicemodelsamples/service.svc. Para permitir que o cliente do WCF (Windows Communication Foundation) trabalhe com um certificado de teste, alguns códigos adicionais são adicionados ao cliente para suprimir o alerta de segurança. Esse código e a classe de acompanhamento não são necessários ao usar certificados reais.

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

Quando você executa o exemplo, as solicitações e respostas da operação são exibidas na janela do console do cliente. Pressione ENTER na janela do cliente para desligar o cliente.

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.

Para configurar, compilar e executar o exemplo

  1. Instale ASP.NET 4.0 usando o seguinte comando:

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Verifique se você executou o Procedimento de instalação avulsa dos exemplos do Windows Communication Foundation.

  3. Verifique se você executou as instruções de instalação do certificado do servidor do IIS (Serviços de Informações da Internet).

  4. Para compilar a edição .NET do C# ou do Visual Basic da solução, siga as instruções contidas em Como Compilar as Amostras do Windows Communication Foundation.

  5. Para executar o exemplo em uma configuração única ou entre máquinas, siga as instruções em Executando os exemplos do Windows Communication Foundation.