Directory Services

Composing the SPNs for a Service with an SCP

The following code example composes an SPN for a service that uses a service connection point (SCP). The returned SPN has the following format.


where ServiceClass and ServiceName correspond to the pszDNofSCP and pszServiceClass parameters. In this example, host defaults to the DNS name of the local computer.

	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;