Partilhar via


BasicBinding com segurança de transporte

O exemplo TransportSecurity demonstra o uso da segurança de transporte SSL com a associação básica. Este exemplo é baseado na Introdução que implementa um serviço de calculadora.

Detalhes da amostra

Por padrão, a ligação básica suporta 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 de Servidor Web.

Nota

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

O código do programa no exemplo é idêntico ao do serviço de Introdução . A definição de ponto de extremidade e a definição de vinculação nas definições do arquivo de configuração são modificadas para permitir 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 aparece quando você tenta acessar um endereço HTTPS: em seu navegador, como https://localhost/servicemodelsamples/service.svc. Para permitir que o cliente Windows Communication Foundation (WCF) trabalhe com um certificado de teste, algum código adicional é adicionado ao cliente para suprimir o alerta de segurança. Este código, e a classe que o acompanha, não é necessário 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 de operação e as respostas 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 o ASP.NET 4.0 usando o seguinte comando:

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Certifique-se de ter executado o procedimento de instalação única para os exemplos do Windows Communication Foundation.

  3. Verifique se você executou as Instruções de Instalação do Certificado de Servidor do IIS (Serviços de Informações da Internet).

  4. Para criar a edição C# ou Visual Basic .NET da solução, siga as instruções em Criando os exemplos do Windows Communication Foundation.

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