Share via


Utilizzo di una sessione SOAP

Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa caratteristica in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Per eseguire una richiesta SOAP nel contesto di una sessione esistente, è necessario specificare le informazioni seguenti in una richiesta di sessione SOAP al server:

  • Lo stesso ID di sessione fornito in precedenza al client dal server.

  • L'ID dell'endpoint HTTP corrispondente all'endpoint in cui è stata inizializzata in precedenza la sessione SOAP.

  • Lo stesso contesto utente, che può essere un utente di Windows o di SQL Server, a seconda del valore LOGIN_TYPE supportato nelle proprietà SOAP dell'endpoint.

Se l'identificatore di sessione non esiste o non è corretto, verrà restituito un messaggio di errore SOAP con un elemento sqlSession nell'intestazione che contiene l'attributo terminate. In caso contrario, il server risponderà visualizzando la stessa intestazione sqlSession inviata dal client nella richiesta.

Se la richiesta viene eseguita in un contesto di protezione diverso oppure in un endpoint diverso da quello che ha inizializzato la sessione, verrà restituito un errore SOAP. Nella risposta verrà specificato il codice di errore SOAP per l'interruzione del livello SOAP e l'attributo terminate nell'intestazione sqlSession verrà impostato su true.

Per evitare inoltre che un utente malintenzionato possa determinare l'esistenza di una sessione, viene impostato l'attributo terminate e se il server riceve una richiesta nella quale la sessione definita per l'integrazione è sconosciuta, restituirà un errore SOAP.

Esempi

Nell'esempio seguente viene illustrata l'integrazione di una sessione SOAP. Viene illustrato il formato del messaggio SOAP inviato dal client nella richiesta per l'integrazione di una sessione SOAP esistente. Si noti che il valore effettivo di sessionId è un identificatore specifico della sessione.

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

Il server visualizzerà il messaggio al client per indicare che è possibile accedere alla sessione oppure restituirà al client un errore SOAP se non è possibile accedere alla sessione identificata nella richiesta.