Share via


Usando uma sessão SOAP

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

Para que uma solicitação SOAP seja executada no contexto de uma sessão existente, ela deve especificar o seguinte como parte de uma solicitação de sessão SOAP para o servidor:

  • A mesma ID de sessão que foi fornecida pelo servidor anteriormente para o cliente.

  • A ID do ponto de extremidade HTTP correspondente para o ponto de extremidade onde a sessão SOAP oi previamente iniciada

  • O mesmo contexto de usuário. Esse é um usuário do Windows ou do SQL Server, dependendo do LOGIN_TYPE com suporte nas propriedades SOAP do ponto de extremidade.

Se o identificador de sessão especificado não existir ou não for formado corretamente, uma mensagem de falha do SOAP será retornada com um elemento sqlSession no cabeçalho com o atributo terminate. Caso contrário, o servidor responderá ecoando o mesmo cabeçalho sqlSession que o cliente enviou na solicitação.

Se a solicitação for executada em um contexto de segurança ou ponto de extremidade diferente daquele que iniciou a sessão, será retornada uma falha de SOAP. Na resposta, o código da falha de SOAP do encerramento da camada SOAP será especificado e, no cabeçalho sqlSession, o atributo terminate será incluído com um valor true.

Além disso, para evitar que um usuário mal-intencionado determine a existência de uma sessão, o atributo terminate será definido e uma falha de SOAP será retornada pelo servidor como a única mensagem de resposta a qualquer solicitação na qual a sessão identificada para inscrição seja desconhecida para o servidor.

Exemplos

O exemplo a seguir mostra a inscrição de uma sessão SOAP. Ele mostra o formato da mensagem SOAP que um cliente envia ao solicitar a inscrição em uma sessão SOAP existente. Observe que o valor real de sessionId será um identificador específico da sessão.

<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>

O servidor irá ecoar a mensagem de volta ao cliente para indicar que a sessão pode ser acessada ou retornará uma falha de SOAP para o cliente, caso não seja possível acessar a sessão identificada na solicitação.