Cómo: Crear una sesión segura
Con la excepción del enlace basicHttpBinding Element, los enlaces proporcionados por el sistema en Windows Communication Foundation (WCF) utilizan automáticamente sesiones seguras cuando está habilitada la seguridad del mensaje.
De forma predeterminada, las sesiones seguras no permanecen en ningún servidor reciclado. Cuando se establece una sesión segura, el cliente y el servicio almacenan en memoria caché la clave asociada a la sesión segura. Cuando se intercambian los mensajes, se intercambia sólo un identificador de la clave almacenada en memoria caché. Si se recicla el servidor web, también se recicla la memoria en caché, de manera que el servidor web no puede recuperar la clave almacenada en memoria caché para el identificador. Si ocurre esto, se produce una excepción que se devuelve al cliente. Las sesiones seguras que utilizan un token de contexto de seguridad con estado (SCT) pueden permanecer en un servidor web que se está reciclando. Para obtener más información acerca de utilizar un SCT con estado en una sesión segura, consulte Cómo: Crear un token de contexto de seguridad con estado para una sesión segura.
Para especificar que un servicio utiliza las sesiones seguras utilizando uno de los enlaces proporcionados por el sistema
Configure un servicio para utilizar un enlace proporcionado por el sistema que admite seguridad de mensaje.
Con la excepción del enlace basicHttpBinding Element, cuando se configuran los enlaces proporcionados por el sistema para utilizar seguridad de mensaje, WCF utiliza automáticamente las sesiones seguras. La siguiente tabla detalla los enlaces proporcionados por el sistema que admiten seguridad de mensaje y si la seguridad de mensaje es el mecanismo de seguridad predeterminado.
Enlace proporcionado por el sistema Elemento de configuración Seguridad de mensaje activada de forma predeterminada No
Sí
Sí
Sí
No
No
El ejemplo de código siguiente utiliza la configuración para especificar un enlace denominado
wsHttpBinding_Calculator
que utiliza wsHttpBinding Element, seguridad de mensaje y sesiones seguras.<bindings> <WSHttpBinding> <binding name = "wsHttpBinding_Calculator"> <security mode="Message"> <message clientCredentialType="Windows"/> </security> </binding> </WSHttpBinding> </bindings>
El ejemplo de código siguiente especifica que wsHttpBinding Element, seguridad de mensaje y sesiones seguras se utilizan para proteger el servicio
secureCalculator
.Nota
Las sesiones seguras pueden desactivarse para wsHttpBinding Element estableciendo el atributo establishSecurityContext en false. Para los otros enlaces proporcionados por el sistema, las sesiones seguras pueden desactivarse sólo mediante la creación un enlace personalizado.
Especificar que un servicio utiliza sesiones seguras utilizando un enlace personalizado
Cree un enlace personalizado que especifica que una sesión segura protege los mensajes SOAP.
Para obtener más información acerca de crear un enlace personalizado, consulte Personalización de un enlace proporcionado por el sistema.
El ejemplo de código siguiente utiliza la configuración para especificar un enlace personalizado que envía mensajes utilizando una sesión segura.
<bindings> <!-- configure a custom binding --> <customBinding> <binding name="customBinding_Calculator"> <security authenticationMode="SecureConversation" /> <secureConversationBootstrap authenticationMode="SspiNegotiated" /> <textMessageEncoding messageVersion="Soap12WSAddressing10" writeEncoding="utf-8"/> <httpTransport/> </binding> </customBinding> </bindings>
El ejemplo de código siguiente crea un enlace personalizado que utiliza el modo de autenticación MutualCertificate para programar previamente una sesión segura.
Consulte también
Conceptos
Información general de enlaces de Windows Communication Foundation