Partager via


Fonction DsClientMakeSpnForTargetServerA (ntdsapi.h)

La fonction DsClientMakeSpnForTargetServer construit un nom de principal de service (SPN) qui identifie un serveur spécifique à utiliser pour l’authentification.

Syntaxe

NTDSAPI DWORD DsClientMakeSpnForTargetServerA(
  [in]      LPCSTR ServiceClass,
  [in]      LPCSTR ServiceName,
  [in, out] DWORD  *pcSpnLength,
  [out]     LPSTR  pszSpn
);

Paramètres

[in] ServiceClass

Pointeur vers une chaîne terminée par null qui contient la classe du service telle que définie par le service. Il peut s’agir de n’importe quelle chaîne propre au service.

[in] ServiceName

Pointeur vers une chaîne terminée par une valeur Null qui contient le nom d’hôte du service DNS (Distinguished Name Service). Il peut s’agir d’un nom complet ou d’une adresse IP au format Internet standard.

L’utilisation d’une adresse IP pour ServiceName n’est pas recommandée, car cela peut créer un problème de sécurité. Avant que le SPN ne soit construit, l’adresse IP doit être traduite en nom d’ordinateur via la résolution de noms DNS. Il est possible que la résolution de noms DNS soit usurpée, en remplaçant le nom d’ordinateur prévu par un nom d’ordinateur non autorisé.

[in, out] pcSpnLength

Pointeur vers une valeur DWORD qui, lors de l’entrée, contient la taille de la mémoire tampon pszSpn , en caractères. Lors de la sortie, ce paramètre reçoit le nombre de caractères copiés dans la mémoire tampon pszSpn , y compris la valeur NULL de fin.

[out] pszSpn

Pointeur vers une mémoire tampon de chaîne qui reçoit le SPN.

Valeur retournée

Cette fonction retourne des codes d’erreur Windows standard.

Remarques

Lorsque vous utilisez cette fonction, fournissez la classe de service et une partie d’un nom d’hôte DNS.

Cette fonction est une version simplifiée de la fonction DsMakeSpn . Le ServiceName est rendu canonique en le résolvant via DNS.

Les noms DNS basés sur un GUID ne sont pas pris en charge. Lorsqu’il est construit, le SPN simplifié est le suivant :

ServiceClass / ServiceName / ServiceName

La partie de nom instance (deuxième position) est toujours définie sur la valeur par défaut. Les champs port et référent ne sont pas utilisés.

Notes

L’en-tête ntdsapi.h définit DsClientMakeSpnForTargetServer comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête ntdsapi.h
Bibliothèque Ntdsapi.lib
DLL Ntdsapi.dll

Voir aussi

Fonctions de gestion du contrôleur de domaine et de la réplication

DsMakeSpn