Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En el ejemplo ReliableSessionOverHttps se muestra el uso de la seguridad de transporte SSL con Reliable Sessions. Reliable Sessions implementa el protocolo de mensajería de WS-Reliable. Puede tener una sesión confiable segura creando WS-Security sobre sesiones confiables. Pero a veces, puede optar por usar la seguridad de transporte HTTP con SSL.
Detalles del ejemplo
SSL garantiza que los propios paquetes estén protegidos. Es importante tener en cuenta que esto es diferente de asegurar una sesión segura mediante WS-Secure Conversation.
Para usar una sesión confiable a través de HTTPS, debe crear un enlace personalizado. Este ejemplo se basa en la Guía de inicio que implementa un servicio de calculadora. Se crea un enlace personalizado utilizando el elemento de enlace de la sesión confiable y <httpsTransport>. La configuración siguiente es del enlace personalizado.
<?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>
El código de programa del ejemplo es idéntico al del servicio Introducción . Debe crear un certificado y asignarlo mediante el Asistente para certificados de servidor web antes de compilar y ejecutar el ejemplo. La definición de punto de conexión y la definición de enlace en la configuración del archivo de configuración permiten el uso del enlace personalizado, como se muestra en la siguiente configuración de ejemplo para el 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>
La dirección especificada usa el https://
esquema .
Dado que el certificado usado en este ejemplo es un certificado de prueba creado con Makecert.exe, aparece una alerta de seguridad al intentar acceder a una dirección HTTPS, como https://localhost/servicemodelsamples/service.svc
, desde el explorador. Para permitir que el cliente de Windows Communication Foundation (WCF) funcione con un certificado de prueba, se ha agregado código adicional al cliente para suprimir la alerta de seguridad. Este código y la clase que lo acompaña no son necesarios cuando se usan certificados de producción.
// This code is required only for test certificates like those created by Makecert.exe.
PermissiveCertificatePolicy.Enact("CN=ServiceModelSamples-HTTPS-Server");
Al ejecutar el ejemplo, las solicitudes de operación y las respuestas se muestran en la ventana de la consola del cliente. Presione ENTRAR en la ventana del cliente para apagar el 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 y ejecutar el ejemplo
Instale ASP.NET 4.0 con el comando siguiente.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Asegúrese de que ha realizado el procedimiento de instalación única para los ejemplos de Windows Communication Foundation.
Asegúrese de que ha realizado las instrucciones de instalación de certificados de servidor de Internet Information Services (IIS).
Para compilar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Building the Windows Communication Foundation Samples.
Para ejecutar el ejemplo en una configuración de una máquina única o entre máquinas, siga las instrucciones de Ejecución de los ejemplos de Windows Communication Foundation.