Compartir a través de


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

    BasicHttpBinding

    basicHttpBinding Element

    No

    WSHttpBinding

    wsHttpBinding Element

    WSDualHttpBinding

    wsDualHttpBinding Element

    WSFederationHttpBinding

    wsFederationHttpBinding element

    NetTcpBinding

    netTcpBinding Element

    No

    NetMsmqBinding

    netMsmqBinding Element

    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