Share via


Usar una sesión SOAP

Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

Para que una solicitud SOAP se ejecute dentro del contexto de una sesión existente, debe especificar lo siguiente como parte de una solicitud de sesión SOAP para el servidor:

  • El mismo Id. de sesión que el servidor ha proporcionado previamente al cliente.

  • El Id. de extremo de HTTP correspondiente al extremo en el que la sesión SOAP fue iniciada previamente.

  • El mismo contexto de usuario. Puede ser un usuario de Windows o de SQL Server, dependiendo del LOGIN_TYPE admitido en las propiedades SOAP del extremo.

Si el identificador de sesión especificado no existe o está mal formado, se devuelve un mensaje de error SOAP con un elemento sqlSession en el encabezado con el atributo terminate. De lo contrario, el servidor responde con el mismo encabezado sqlSession que el cliente envió en la solicitud.

Si la solicitud se ejecuta bajo un contexto de seguridad o extremo diferente del que ha iniciado la sesión, se devuelve un error SOAP. En la respuesta, se especificará el código de error SOAP para la terminación y en el encabezado sqlSession se incluirá el atributo terminate con un valor de true.

Además, para evitar que un usuario malintencionado pueda determinar la existencia de una sesión, se establece el atributo terminate y el servidor devuelve un error SOAP como único mensaje de respuesta a cualquier solicitud en la que el servidor desconoce la sesión identificada para el alta.

Ejemplos

En el siguiente ejemplo se muestra el alta de una sesión SOAP. En él se muestra el formato del mensaje SOAP que un cliente envía cuando solicita el alta a una sesión SOAP existente. Tenga en cuenta que el valor sessionId real será un identificador específico de la sesión.

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- enlist in an existing session --><sqloptions:sqlSession sessionId="AAAAADreaLE="/>
</SOAP-ENV:Header>

El servidor devolverá el mensaje al cliente para indicar que la sesión está accesible o devolverá un error SOAP al cliente si la sesión identificada en la solicitud no está accesible.