Seguridad de transporte WS
El ejemplo wsTransportSecurity muestra el uso de la seguridad de transporte SSL con el enlace WSHttpBinding. De forma predeterminada, el enlace wsHttpBinding
proporciona la comunicación HTTP. Cuando se configura para la seguridad del transporte, el enlace admite la comunicación de HTTPS. Este ejemplo se basa en el ejemplo Introducción, que implementa un servicio de calculadora. wsHttpBinding
se especifica y se configura en los archivos de configuración de la aplicación para el cliente y el servicio.
Nota
El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.
El código de programa del ejemplo es idéntico al del servicio Introducción. Debe crear un certificado y asignarlo utilizando el Asistente para certificados de servidor web antes de compilar y ejecutar el ejemplo. La definición de extremo y de enlace en la configuración del archivo de configuración habilitan el modo de seguridad Transport
, tal y como se muestra en la configuración de ejemplo siguiente para el 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>
La dirección especificada utiliza el esquema https://
. La configuración de enlace establece el modo de seguridad en Transport
. Debe especificarse el mismo modo de seguridad en el archivo Web.config del servicio.
Dado que el certificado utilizado en este ejemplo es un certificado de prueba creado con Makecert.exe, aparece una alerta de seguridad al intentar tener acceso a una dirección https:, como https://localhost/servicemodelsamples/service.svc
, desde el explorador. Para permitir que el cliente de Windows Communication Foundation (WCF) use 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 y respuestas de la operación se muestran en la ventana de la consola del cliente. Presione ENTRAR en la ventana de cliente para cerrar 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.
Configurar, compilar y ejecutar el ejemplo
Instale ASP.NET 4.0 con el siguiente comando.
%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 seguido las instrucciones de instalación del certificado 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 sola máquina o de varias máquinas, siga las instrucciones que se indican en Ejecución de los ejemplos de Windows Communication Foundation.