Função DsMakeSpnA (dsparse.h)
A função DsMakeSpn constrói um SPN (nome da entidade de serviço) que identifica uma instância de serviço.
Um aplicativo cliente usa essa função para compor um SPN, que ele usa para autenticar a instância de serviço. Por exemplo, o cliente pode passar um SPN no parâmetro pszTargetName da função InitializeSecurityContext.
Sintaxe
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
Ponteiro para uma cadeia de caracteres terminada em nulo constante que especifica a classe do serviço. Esse parâmetro pode ser qualquer cadeia de caracteres exclusiva para esse serviço; O nome do protocolo, por exemplo, ldap ou a forma de cadeia de caracteres de um GUID são aceitáveis.
[in] ServiceName
Ponteiro para uma cadeia de caracteres terminada em nulo constante que especifica o nome DNS, o nome NetBIOS ou o nome diferenciado (DN). Esse parâmetro deve serNULL não
Para obter mais informações sobre como os parâmetros ServiceName, InstanceName e InstancePort são usados para compor um SPN, consulte a seção Comentários a seguir.
[in, optional] InstanceName
Ponteiro para uma cadeia de caracteres terminada em nulo constante que especifica o nome DNS ou o endereço IP do host para uma instância do serviço.
Se
Se ServiceName especificar um nome de domínio DNS, o nome de um registro SRV DNS ou um nome diferenciado, como o DN de um ponto de conexão de serviço, o parâmetro InstanceName deverá especificar o nome DNS ou NetBIOS do computador host de serviço.
[in] InstancePort
Número da porta para uma instância do serviço. Use 0 para a porta padrão. Se esse parâmetro for zero, o SPN não inclui um número de porta.
[in, optional] Referrer
Ponteiro para uma cadeia de caracteres terminada em nulo constante que especifica o nome DNS do host que forneceu uma referência de endereço IP. Esse parâmetro é ignorado, a menos que o parâmetro ServiceName especifique um endereço IP.
[in, out] pcSpnLength
Ponteiro para uma variável que contém o comprimento, em caracteres, do buffer que receberá o novo SPN construído. Esse valor pode ser 0 para solicitar o tamanho final do buffer com antecedência.
O parâmetro pcSpnLength também recebe o comprimento real do SPN criado, incluindo o caractere nulo de terminação.
[out] pszSpn
Ponteiro para uma cadeia de caracteres terminada em nulo que recebe o SPN construído. Esse buffer deve ser o comprimento especificado por pcSpnLength. O parâmetro pszSpn pode ser NULL para solicitar o tamanho final do buffer com antecedência.
Valor de retorno
Se a função retornar um SPN, o valor retornado será ERROR_SUCCESS. Se a função falhar, o valor retornado poderá ser um dos seguintes códigos de erro.
Observações
O formato do SPN produzido pela função DsMakeSpn depende dos parâmetros de entrada. Há dois formatos básicos. Ambos os formatos começam com a cadeia de caracteres ServiceClass
Para produzir um SPN com o formato ">do<ServiceClass/<host>"
- Defina o parâmetro ServiceName com o nome DNS do computador host para a instância de serviço. Esse é o componente host do SPN.
- Defina os parâmetros InstanceName e Referrer para NULL.
-
Defina o parâmetro
InstancePort como zero. Se InstancePort não for zero, o SPN terá o seguinte formato: <service class>/<host>:<instance port>/<referrer>
Para produzir um SPN com o>de host "<ServiceClass>/<: formato<InstancePort>"
- Defina o parâmetro InstanceName com o nome DNS do computador host da instância de serviço. Esse é o componente do host.
- Defina o parâmetro ServiceName para uma cadeia de caracteres que identifica uma instância do serviço. Por exemplo, pode ser o nome diferenciado do ponto de conexão de serviço para essa instância de serviço.
- Defina o parâmetro referenciador de
para NULL. -
Defina o parâmetro
InstancePort como zero. Se InstancePort não for zero, o SPN terá o seguinte formato: <service class>/<host>:<instance port>/<service name>
<service class>/<host>:<instance port>/<referrer>
em que o componente host é a cadeia de caracteres
Os parâmetros de cadeia de caracteres não podem incluir o caractere de barra (/), pois ele é usado para separar os componentes do SPN.
Nota
O cabeçalho dsparse.h define DsMakeSpn como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Vista |
servidor com suporte mínimo | Windows Server 2008 |
da Plataforma de Destino |
Windows |
cabeçalho | dsparse.h (inclua Ntdsapi.h) |
biblioteca | Ntdsapi.lib |
de DLL |
Ntdsapi.dll |
Consulte também
Funções de gerenciamento de replicação e controlador de domínio