DsBindWithSpnW 函数 (ntdsapi.h)

DsBindWithSpn 函数使用指定的凭据和特定的服务主体名称(SPN)绑定到域控制器,以便相互身份验证。

此函数用于相互身份验证需要完全控制的位置。 如果希望 DsBind 查找服务器,请不要使用此函数,因为 SPN 特定于计算机,并且你提供的 SPN 不太可能与 DsBind 找到的服务器匹配。 提供 NULLServicePrincipalName 参数会导致行为与 DsBindWithCred相同。

语法

NTDSAPI DWORD DsBindWithSpnW(
  [in, optional] LPCWSTR                  DomainControllerName,
  [in, optional] LPCWSTR                  DnsDomainName,
  [in, optional] RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  [in, optional] LPCWSTR                  ServicePrincipalName,
  [out]          HANDLE                   *phDS
);

参数

[in, optional] DomainControllerName

指向包含要绑定到的域的完全限定 DNS 名称的以 null 结尾的字符串的指针。 有关详细信息,请参阅 DsBind 主题中的 DomainControllerName 说明。

[in, optional] DnsDomainName

指向包含要绑定到的域的完全限定 DNS 名称的以 null 结尾的字符串的指针。 有关详细信息,请参阅 DsBind 主题中的 DnsDomainName 说明。

[in, optional] AuthIdentity

包含一个 RPC_AUTH_IDENTITY_HANDLE 值,该值表示要用于绑定的凭据。 这

DsMakePasswordCredentials 函数用于获取此值。 如果此参数 NULL,则使用调用线程的凭据。

在使用 DsFreePasswordCredentials 函数释放此句柄之前,必须先调用 DsUnBind

[in, optional] ServicePrincipalName

指向一个以 null 结尾的字符串的指针,该字符串指定要分配给客户端的服务主体名称。 在 ServicePrincipalName 中传递 NULL 等效于对 DsBindWithCred 函数的调用。

[out] phDS

接收绑定句柄的 HANDLE 值的地址。 若要关闭此句柄,请将其传递给 DsUnBind 函数。

返回值

如果成功,则返回 ERROR_SUCCESS;否则返回 Windows 或 RPC 错误代码。 以下是最常见的错误代码。

言论

注意

ntdsapi.h 标头将 DsBindWithSpn 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows Vista
支持的最低服务器 Windows Server 2008
目标平台 窗户
标头 ntdsapi.h
Ntdsapi.lib
DLL Ntdsapi.dll

另请参阅

域控制器和复制管理功能

DsBind

DsBindWithCred

DsUnBind