Función DsMakeSpnA (dsparse.h)
La función DsMakeSpn crea un nombre de entidad de seguridad de servicio (SPN) que identifica una instancia de servicio.
Una aplicación cliente usa esta función para crear un SPN, que usa para autenticar la instancia de servicio. Por ejemplo, el cliente puede pasar un SPN en el parámetro pszTargetName de la función InitializeSecurityContext.
Sintaxis
DSPARSE DWORD DsMakeSpnA(
[in] LPCSTR ServiceClass,
[in] LPCSTR ServiceName,
[in, optional] LPCSTR InstanceName,
[in] USHORT InstancePort,
[in, optional] LPCSTR Referrer,
[in, out] DWORD *pcSpnLength,
[out] LPSTR pszSpn
);
Parámetros
[in] ServiceClass
Puntero a una cadena terminada en null constante que especifica la clase del servicio. Este parámetro puede ser cualquier cadena única para ese servicio; El nombre del protocolo, por ejemplo, ldap o la forma de cadena de un GUID son aceptables.
[in] ServiceName
Puntero a una cadena terminada en NULL constante que especifica el nombre DNS, el nombre NetBIOS o el nombre distintivo (DN). Este parámetro debe ser distinto deNULL.
Para obtener más información sobre cómo se usan los parámetros Nombre DeInstancia y InstancePort para componer un SPN, consulte la siguiente sección Comentarios.
[in, optional] InstanceName
Puntero a una cadena terminada en NULL constante que especifica el nombre DNS o la dirección IP del host para una instancia del servicio.
Si ServiceName especifica el nombre DNS o NetBIOS del equipo host del servicio, el parámetro InstanceName debe ser NULL.
Si ServiceName especifica un nombre de dominio DNS, el nombre de un registro SRV DNS o un nombre distintivo, como el DN de un punto de conexión de servicio, el parámetro InstanceName debe especificar el nombre DNS o NetBIOS del equipo host del servicio.
[in] InstancePort
Número de puerto de una instancia del servicio. Use 0 para el puerto predeterminado. Si este parámetro es cero, el SPN no incluye un número de puerto.
[in, optional] Referrer
Puntero a una cadena terminada en NULL constante que especifica el nombre DNS del host que dio una referencia de dirección IP. Este parámetro se omite a menos que el parámetro ServiceName especifique una dirección IP.
[in, out] pcSpnLength
Puntero a una variable que contiene la longitud, en caracteres, del búfer que recibirá el nuevo SPN construido. Este valor puede ser 0 para solicitar el tamaño final del búfer de antemano.
El parámetro pcSpnLength también recibe la longitud real del SPN creado, incluido el carácter nulo de terminación.
[out] pszSpn
Puntero a una cadena terminada en NULL que recibe el SPN construido. Este búfer debe ser la longitud especificada por pcSpnLength. El parámetro pszSpn puede ser NULL solicitar el tamaño final del búfer de antemano.
Valor devuelto
Si la función devuelve un SPN, el valor devuelto es ERROR_SUCCESS. Si se produce un error en la función, el valor devuelto puede ser uno de los siguientes códigos de error.
Observaciones
El formato del SPN generado por la función DsMakeSpn depende de los parámetros de entrada. Hay dos formatos básicos. Ambos formatos comienzan con la cadena
Para generar un SPN con el formato "<ServiceClass>/<host>"
- Establezca el parámetro ServiceName en el nombre DNS del equipo host para la instancia de servicio. Este es el componente host del SPN.
- Establezca los parámetros InstanceName y Referer en NULL.
-
Establezca el parámetro
InstancePort en cero. Si instancePort es distinto de cero, el SPN tiene el siguiente formato: <service class>/<host>:<instance port>/<referrer>
Para generar un SPN con el formato "<ServiceClass>/<host>:<InstancePort>" format
- Establezca el parámetro InstanceName en el nombre DNS del equipo host para la instancia de servicio. Este es el componente host.
- Establezca el parámetro ServiceName en una cadena que identifique una instancia del servicio. Por ejemplo, podría ser el nombre distintivo del punto de conexión de servicio para esta instancia de servicio.
- Establezca el parámetro
Referer en NULL . -
Establezca el parámetro
InstancePort en cero. Si instancePort es distinto de cero, el SPN tiene el siguiente formato: <service class>/<host>:<instance port>/<service name>
<service class>/<host>:<instance port>/<referrer>
donde el componente host es la cadena de
Los parámetros de cadena no pueden incluir el carácter de barra diagonal (/), ya que se usa para separar los componentes del SPN.
Nota
El encabezado dsparse.h define DsMakeSpn como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista |
servidor mínimo admitido | Windows Server 2008 |
de la plataforma de destino de |
Windows |
encabezado de |
dsparse.h (incluya Ntdsapi.h) |
biblioteca de |
Ntdsapi.lib |
DLL de |
Ntdsapi.dll |
Consulte también
controlador de dominio y funciones de administración de replicación