IADsUser::ChangePassword 方法 (iads.h)

IADsUser::ChangePassword 方法将用户密码从指定的旧值更改为新值。

语法

HRESULT ChangePassword(
  [in]  BSTR bstrOldPassword,
  [out] BSTR bstrNewPassword
);

参数

[in] bstrOldPassword

包含当前密码的 BSTR

[out] bstrNewPassword

包含新密码的 BSTR

返回值

此方法支持标准返回值,包括S_OK。 有关详细信息和其他返回值,请参阅 ADSI 错误代码

注解

IADsUser::ChangePassword 的功能类似于 IADsUser::SetPassword ,因为它将使用三种方法之一来尝试更改密码。 最初,如果与服务器建立了安全的 SSL 连接,LDAP 提供程序将尝试 LDAP 更改密码操作。 如果此尝试失败,LDAP 提供程序接下来将尝试使用 Kerberos (请参阅 IADsUser::SetPassword ,了解在 Windows 上使用跨林身份验证) 可能导致的一些问题,如果此操作也失败,它将最终调用特定于 Active Directory 的网络管理 API NetUserChangePassword

在 Active Directory 中,调用方必须具有 “更改密码 ”扩展控制访问权限才能使用此方法更改密码。

示例

下面的代码示例演示如何更改用户密码。

Dim usr As IADsUser
Dim szOldPass As String
Dim szNewPass As String

On Error GoTo Cleanup

Set usr = GetObject("WinNT://Fabrikam/JeffSmith,user")
' Add code to securely retrieve the old and new password.

usr.ChangePassword szOldPass, szNewPass

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set usr = Nothing

下面的代码示例演示如何更改用户密码。

HRESULT ChangePassword(
    IADsUser *pUser, 
    LPWSTR oldPasswd, 
    LPWSTR newPasswd)
{
    HRESULT hr=S_OK;
    if(!pUser) { return E_FAIL;}
    hr = pUser->ChangePassword(oldPasswd, newPasswd);
    printf("User password has been changed");
    return hr;
}

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 iads.h
DLL Activeds.dll

另请参阅

ADSI 错误代码

IADsUser

IADsUser 属性方法