IADsUser::SetPassword 方法 (iads.h)
IADsUser::SetPassword方法會將使用者密碼設定為指定的值。 針對 LDAP 提供者,必須在呼叫IADsUser::SetPassword之前,使用IADs::SetInfo建立並儲存使用者帳戶。
不過,WinNT 提供者可讓您在呼叫 SetInfo之前,先在新建立的使用者物件上設定密碼。 這可確保您在建立使用者帳戶之前,先建立符合系統密碼原則的密碼。
語法
HRESULT SetPassword(
BSTR NewPassword
);
參數
NewPassword
包含新密碼的 BSTR 。
傳回值
這個方法支援標準傳回值,包括 S_OK。 如需其他傳回值,請參閱 ADSI 錯誤碼。
備註
Active Directory 的 LDAP 提供者會使用三個程式之一來設定密碼;iPlanet 之類的協力廠商 LDAP 目錄不會使用此密碼驗證程式。 方法可能會根據網路組態而有所不同。 嘗試以下列順序設定密碼:
- 首先,LDAP 提供者會嘗試透過 128 位 SSL 連線使用 LDAP。 若要讓 LDAP SSL 順利運作,LDAP 伺服器必須安裝適當的伺服器驗證憑證,而且執行 ADSI 程式碼的用戶端必須信任發行這些憑證的授權單位。 伺服器和用戶端都必須支援 128 位加密。
- 其次,如果 SSL 連線失敗,LDAP 提供者會嘗試使用 Kerberos。
- 第三,如果 Kerberos 不成功,LDAP 提供者會嘗試 NetUserSetInfo API 呼叫。 在舊版中,ADSI 線上程執行的安全性內容中呼叫 NetUserSetInfo ,而不是呼叫 IADsOpenDSObject::OpenDSObject 或 ADsOpenObject中指定的安全性內容。 在更新版本中,這已變更,因此 ADSI LDAP 提供者會在呼叫 NetUserSetInfo 時模擬 OpenDSObject 呼叫中指定的使用者。
範例
下列程式碼範例會示範如何設定使用者密碼,如果您有權這麼做。
Dim usr As IADsUser
Dim szPassword As String
On Error GoTo Cleanup
' Add code to securely get the password.
Set usr = GetObject("LDAP://MyLdapSvr/CN=JeffSmith,DC=Fabrikam")
usr.SetPassword szPassword
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set usr = Nothing
下列程式碼範例會示範如何設定使用者密碼,如果您有權這麼做。
HRESULT SetPassword(IADsUser *pUser, BSTR password)
{
HRESULT hr=S_OK;
if(!pUser) { return E_FAIL;}
hr = pUser->SetPassword(password);
if (hr == S_OK) printf("User password has been set");
pUser->Release();
return hr;
}
需求
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | iads.h |
Dll | Activeds.dll |