Segurança de transporte WS
O exemplo wsTransportSecurity demonstra o uso da segurança do transporte SSL com a associação WSHttpBinding . Por padrão, a associação wsHttpBinding
fornece comunicação HTTP. Quando configurada para segurança de transporte, a associação dá suporte à comunicação HTTPS. Este exemplo se baseia na Introdução que implementa um serviço de calculadora. wsHttpBinding
é especificado e configurado nos arquivos de configuração do aplicativo para o cliente e o serviço.
Observação
Os procedimentos de instalação e as instruções de compilação para esse exemplo estão localizadas no final deste tópico.
O código do programa na amostra é idêntico ao do serviço de Introdução. Você deve criar um certificado e atribuí-lo usando o Assistente de Certificado do Servidor Web antes de compilar e executar a amostra. A definição de ponto de extremidade e a definição de associação nas configurações do arquivo de configuração habilitam o modo de segurança Transport
, conforme mostrado na configuração de amostra a seguir para o cliente.
<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>
O endereço especificado usa o esquema https://
. A configuração de associação define o modo de segurança como Transport
. O mesmo modo de segurança deve ser especificado no arquivo Web.config do serviço.
Como o certificado usado nesta amostra é um certificado de teste criado com Makecert.exe, um alerta de segurança é exibido quando você tenta acessar um endereço https:, como https://localhost/servicemodelsamples/service.svc
, no navegador. Para permitir que o cliente Windows Communication Foundation (WCF) trabalhe com um certificado de teste em vigor, um código adicional foi adicionado 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 de produção.
// This code is required only for test certificates like those created by Makecert.exe.
PermissiveCertificatePolicy.Enact("CN=ServiceModelSamples-HTTPS-Server");
Quando você executa a amostra, 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
Instale o ASP.NET 4.0 usando o seguinte comando.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Verifique se você executou o Procedimento de instalação única para os exemplos do Windows Communication Foundation.
Verifique se você executou as Instruções de instalação do certificado de servidor dos Serviços de Informações da Internet (IIS).
Para compilar a edição C# ou do Visual Basic .NET da solução, siga as instruções descritas em Como compilar os exemplos do Windows Communication Foundation.
Para executar a amostra em uma configuração de computador único ou entre computadores, siga as instruções contidas em Como executar as amostras do Windows Communication Foundation.