Verfassen der SPNs für einen Dienst mit einem SCP

Im folgenden Codebeispiel wird ein SPN für einen Dienst erstellt, der einen Dienstverbindungspunkt (Service Connection Point, SCP) verwendet. Der zurückgegebene SPN weist das folgende Format auf.

<service class>/<host>/<service name>

"<service class>" und "<service name>" entsprechen den pszDNofSCP - und pszServiceClass-Parametern . "<host>" wird standardmäßig auf den DNS-Namen des lokalen Computers festgelegt.

DWORD
SpnCompose(
    TCHAR ***pspn,          // Output: an array of SPNs
    unsigned long *pulSpn,  // Output: the number of SPNs returned
    TCHAR *pszDNofSCP,      // Input: DN of the service's SCP
    TCHAR* pszServiceClass) // Input: the name of the service class
{
DWORD   dwStatus;    
 
dwStatus = DsGetSpn(
    DS_SPN_SERVICE, // Type of SPN to create (enumerated type)
    pszServiceClass, // Service class - a name in this case
    pszDNofSCP, // Service name - DN of the service SCP
    0, // Default: omit port component of SPN
    0, // Number of entries in hostnames and ports arrays
    NULL, // Array of hostnames. Default is local computer
    NULL, // Array of ports. Default omits port component
    pulSpn, // Receives number of SPNs returned in array
    pspn // Receives array of SPN(s)
    );
 
return dwStatus;
}