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 |