Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O exemplo ReliableSessionOverHttps demonstra o uso da segurança de transporte SSL com Sessões Confiáveis. O Reliable Sessions implementa o protocolo WS-Reliable Messaging. Você pode ter uma sessão confiável segura redigindo WS-Security em Sessões Confiáveis. Mas, às vezes, você pode optar por usar a segurança de transporte HTTP com SSL.
Detalhes de exemplo
O SSL garante que os próprios pacotes sejam protegidos. É importante observar que isso é diferente de proteger a sessão confiável usando o WS-Secure Conversation.
Para usar uma sessão confiável por HTTPS, você deve criar uma associação personalizada. Este exemplo baseia-se no Guia de Introdução que implementa um serviço de calculadora. Uma associação personalizada é criada usando o elemento de associação de sessão confiável e o <httpsTransport>. A configuração a seguir é da associação personalizada.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- use base address provided by host -->
<endpoint address=""
binding="customBinding"
bindingConfiguration="reliableSessionOverHttps"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is exposed as http://localhost/servicemodelsamples/service.svc/mex-->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<customBinding>
<binding name="reliableSessionOverHttps">
<reliableSession />
<httpsTransport />
</binding>
</customBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
O código do programa no exemplo é idêntico ao do serviço Introdução . Você deve criar um certificado e atribuí-lo usando o Assistente de Certificado do Servidor Web antes de compilar e executar o exemplo. A definição de ponto de extremidade e a definição de associação nas configurações do arquivo de configuração habilitam o uso de associação personalizada, conforme mostrado na configuração de exemplo a seguir para o cliente.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<client>
<!-- this endpoint has an https: address -->
<endpoint name=""
address="https://localhost/servicemodelsamples/service.svc"
binding="customBinding"
bindingConfiguration="reliableSessionOverHttps"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
</client>
<bindings>
<customBinding>
<binding name="reliableSessionOverHttps">
<reliableSession />
<httpsTransport />
</binding>
</customBinding>
</bindings>
</system.serviceModel>
</configuration>
O endereço especificado usa o https://
esquema.
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, como https://localhost/servicemodelsamples/service.svc
, no seu navegador. Para permitir que o cliente WCF (Windows Communication Foundation) trabalhe com um certificado de teste em vigor, alguns códigos adicionais foram 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 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 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
Instale ASP.NET 4.0 usando o comando a seguir.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Verifique se você executou o Procedimento de instalação avulsa dos exemplos do Windows Communication Foundation.
Verifique se você executou as instruções de instalação do certificado do servidor do IIS (Serviços de Informações da Internet).
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.
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.