Condividi tramite


Elemento dell'intestazione sqloptions:clientInterface

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.

L'opzione per l'account di accesso sqloptions:clientInterface consente al client di specificare l'interfaccia client per l'accesso, ad esempio:

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <sqloptions:clientInterface          SOAP-ENV:mustUnderstand="1"          value="name of client interface to use for login" />

</SOAP-ENV:Header>

L'opzione per l'account di accesso sqloptions:clientInterface viene visualizzata come intestazione SOAP ed è costituita da un elemento, denominato sqloptions:clientInterface. L'elemento presenta un solo attributo obbligatorio, value, costituito da un valore di testo che indica l'interfaccia client da impostare per l'accesso. L'attributo è visualizzato nella colonna client_interface_name della vista di compatibilità sys.dm_exec_sessions.

In una richiesta può essere presente una sola istanza dell'opzione sqloptions:clientInterface. Questa opzione non può essere presente in una risposta. In presenza di più istanze dell'opzione verrà generato un errore.

È possibile che nel server siano impostati dei limiti per l'intervallo dei valori riconosciuti dell'opzione sqloptions:clientInterface. Se un client inoltra un valore non compreso nell'intervallo valido, il valore viene troncato automaticamente dal server in modo non definito.

Se si utilizzano sessioni SOAP, questa opzione deve essere presente nella stessa richiesta dell'attributo sqloptions:sqlsession initiate. Se questa opzione è presente in una richiesta con un'intestazione sqloptions:sqlSession che non contiene un attributo initiate, viene generato un errore.

Di seguito è riportato un frammento di schema per l'opzione sqloptions:clientInterface:

<xs:element name="clientInterface" form="qualified">
    <xs:annotation>
        <xs:documentation>
            Set the client interface for the login.
        </xs:documentation>
    </xs:annotation>
    <xs:complexType>
        <xs:attribute use="required" name="value" type="xs:string" form="unqualified">
            <xs:annotation>
                <xs:documentation>
                    The client interface to set for the login.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
</xs:element>

Esempi

Negli esempi seguenti viene illustrato l'utilizzo dell'intestazione sqloptions:clientInterface in messaggi di richiesta e di risposta SOAP.

Richiesta

<SOAP-ENV:Envelope xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
                   xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xmlns:sqlparam="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlParameter"
                   xmlns:sqlsoaptypes="https://schemas.microsoft.com/sqlserver/2004/SOAP/types"
                   xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
  <SOAP-ENV:Header>
    <sqloptions:clientInterface SOAP-ENV:mustUnderstand="1" value="ADO.NET SOAP 2.1" />
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <sql:sqlbatch>
      <sql:BatchCommands>
          SELECT client_interface_name FROM sys.dm_exec_sessions 
          WHERE session_id=@@spid AND client_interface_name='ADO.NET SOAP 2.1'
      </sql:BatchCommands>
    </sql:sqlbatch>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Risposta

<SOAP-ENV:Envelope xml:space="preserve" 
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                   xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/" 
                   xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP" 
                   xmlns:sqlsoaptypes="https://schemas.microsoft.com/sqlserver/2004/SOAP/types" 
                   xmlns:sqlrowcount="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlRowCount" 
                   xmlns:sqlmessage="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlMessage" 
                   xmlns:sqlresultstream="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlResultStream" 
                   xmlns:sqltransaction="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlTransaction" 
                   xmlns:sqltypes="https://schemas.microsoft.com/sqlserver/2004/sqltypes">
  <SOAP-ENV:Body>
    <sql:sqlbatchResponse>
      <sql:sqlbatchResult>
        <sqlresultstream:SqlRowSet xsi:type="sqlsoaptypes:SqlRowSet">
          <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
            <SqlRowSet1 xmlns="urn:schemas-microsoft-com:sql:SqlRowSet1">
              <row>
                <client_interface_name>ADO.NET SOAP 2.1</client_interface_name>
              </row>
            </SqlRowSet1>
          </diffgr:diffgram>
        </sqlresultstream:SqlRowSet>
        <sqlresultstream:SqlRowCount xsi:type="sqlrowcount:SqlRowCount">
          <sqlrowcount:Count>1</sqlrowcount:Count>
        </sqlresultstream:SqlRowCount>
      </sql:sqlbatchResult>
    </sql:sqlbatchResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Vedere anche

Riferimento