使用 LDAP 提供程序设置和更改用户密码

若要设置用户密码,请使用 IADsUser.SetPassword 方法。

Active Directory 的 LDAP 提供程序使用三个进程之一来设置密码(iPlanet 等第三方 LDAP 目录不使用此密码身份验证过程)。 该方法可能因网络配置而异。 设置密码的方法顺序如下:

  • 首先,LDAP 提供程序尝试使用 Kerberos。
  • 其次,如果 Kerberos 失败,LDAP 提供程序将尝试建立安全 LDAP 连接。 若要成功运行安全 LDAP,LDAP 服务器必须安装适当的服务器身份验证证书,并且运行 ADSI 代码的客户端必须信任颁发这些证书的颁发机构。 服务器和客户端必须至少支持 128 位加密。
  • 第三,如果安全 LDAP 连接失败,LDAP 提供程序将尝试 NetUserSetInfo API 调用。 在以前的版本中,ADSI 在线程运行的安全上下文中调用 NetUserSetInfo,而不是调用 IADsOpenDSObject.OpenDSObjectADsOpenObject 中指定的安全上下文。 在更高版本中,已更改此项,以便 ADSI LDAP 提供程序在调用 NetUserSetInfo 时模拟 OpenDSObject 调用中指定的用户。

若要更改用户密码,请使用 IADsUser.ChangePassword 方法。 与 SetPassword 一样,此方法可以使用多个进程来更改密码。 更改密码方法的顺序相同:

  • 首先,LDAP 提供程序尝试使用 Kerberos。
  • 其次,LDAP 提供程序尝试使用安全 LDAP。
  • 第三,如果安全 LDAP 连接失败,LDAP 提供程序将尝试 NetUserChangePassword API 调用。 与 SetPassword 一样,在早期版本中,ADSI LDAP 提供程序模拟使用 IADsOpenDSObject.OpenDSObject 方法或 ADsOpenObject 函数传递的用户凭据。