Partager via


Élément d'en-tête sqloptions:clientNetworkID

Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

L'option de connexion sqloptions:clientNetworkID permet au client de spécifier son ID réseau pour la connexion, par exemple :

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <sqloptions:clientNetworkID SOAP-ENV:mustUnderstand="1" value="networkID" />
    
</SOAP-ENV:Header>

L'option de connexion sqloptions:clientNetworkID apparaît sous la forme d'un en-tête SOAP, constitué d'un élément appelé sqloptions:clientNetworkID. Cet élément possède un seul attribut, value, une valeur binaire codée en base64. L'attribut fournit au client l'ID réseau à définir pour la connexion. Ce dernier apparaît dans la colonne net_address de la vue de compatibilité sys.sysprocesses.

Seule une instance de l'option sqloptions:clientNetworkID peut apparaître dans une demande. L'en-tête ne peut en aucun cas apparaître dans une réponse. Les instances multiples de cette option génèrent une erreur.

Le serveur peut limiter la plage des valeurs reconnues de l'option sqloptions:clientNetworkID. Si un client envoie une valeur en dehors de la plage de valeurs autorisées, le serveur tronque discrètement la valeur de manière indéfinie.

En cas d'utilisation d'une session SOAP, cette option doit apparaître dans la même demande que l'attribut sqloptions:sqlsession initiate. Si l'option apparaît dans une demande associée à un en-tête sqloptions:sqlSession dépourvu de l'attribut initiate, une erreur est générée.

Voici un fragment de schéma concernant l'option sqloptions:clientNetworkID :

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

Exemples

Les exemples suivants illustrent l'utilisation de l'en-tête sqloptions:clientNetworkID dans des messages de demande et de réponse SOAP.

Demande

<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:clientNetworkID SOAP-ENV:mustUnderstand="1" value="AAAAADreaLE=" />
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <sql:sqlbatch>
      <sql:BatchCommands>
        SELECT TOP 1 net_address FROM sysprocesses WHERE spid=@@spid
      </sql:BatchCommands>
    </sql:sqlbatch>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Réponse

<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>
                <net_address>value specified in the request</net_address>
              </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>

Voir aussi

Référence