2.2.3.5 Server

An implementation MAY<4> allow multiple directory services to be accessed via a single endpoint. Therefore, when sending a SOAP request message (for example, to change a password), the requestor MUST specify which directory service the request is intended for. The Server SOAP header, which is located in the http://schemas.microsoft.com/2008/1/ActiveDirectory/Customactions XML namespace, is used to accomplish this. It MUST be specified by the requestor in any SOAP request message that is intended to target a specific directory service.

The contents of the Server header are the string literal "ldap:" followed by an integer (expressed as a string in base 10) that specifies the TCP port number of the desired directory service's LDAP interface.

In the following example, the requestor is asking that the operation (ADCAP ChangePassword) that is specified in the SOAP message be performed against the directory service that listens on port 3268.

 <soapenv:Envelope
     xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
     xmlns:wsa="http://www.w3.org/2005/08/addressing">
   <soapenv:Header>
     <wsa:Action soapenv:mustUnderstand="1">http://schemas.microsoft.com/2008/1/ActiveDirectory/CustomActions/AccountManagement/ChangePassword</wsa:Action>
     <ca:Server
         xmlns:ca="http://schemas.microsoft.com/2008/1/ActiveDirectory/CustomActions"
         xmlns="http://schemas.microsoft.com/2008/1/ActiveDirectory/CustomActions">ldap:3268</ca:Server>
     <wsa:MessageID>urn:uuid:a541d67c-707d-41f0-b27e-78d40b5a8293</wsa:MessageID>
     <wsa:ReplyTo>
       <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
     </wsa:ReplyTo>
     <wsa:To soapenv:mustUnderstand="1">net.tcp://server01.fabrikam.com:9389/ActiveDirectoryWebServices/Windows/AccountManagement</wsa:To>
   </soapenv:Header>
   <soapenv:Body
         xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <ChangePasswordRequest xmlns="http://schemas.microsoft.com/2008/1/ActiveDirectory/CustomActions">
       <AccountDN>CN=Guest,CN=Users,DC=fabrikam,DC=com</AccountDN>
       <NewPassword>Password2</NewPassword>
       <OldPassword>Password1</OldPassword>
       <PartitionDN>DC=fabrikam,DC=com</PartitionDN>
     </ChangePasswordRequest>
   </soapenv:Body>
 </soapenv:Envelope>