Método IADsUser::SetPassword (iads.h)
El método IADsUser::SetPassword establece la contraseña de usuario en un valor especificado. Para el proveedor LDAP, la cuenta de usuario debe haberse creado y almacenado en el directorio subyacente mediante IADs::SetInfo antes de llamar a IADsUser::SetPassword .
Sin embargo, el proveedor WinNT permite establecer la contraseña en un objeto de usuario recién creado antes de llamar a SetInfo. Esto garantiza que cree contraseñas que cumplan la directiva de contraseñas del sistema antes de crear la cuenta de usuario.
Sintaxis
HRESULT SetPassword(
BSTR NewPassword
);
Parámetros
NewPassword
Un BSTR que contiene la nueva contraseña.
Valor devuelto
Este método admite los valores devueltos estándar, incluidos los S_OK. Para obtener otros valores devueltos, consulta Códigos de error ADSI.
Comentarios
El proveedor LDAP para Active Directory usa uno de los tres procesos para establecer la contraseña; Los directorios LDAP de terceros, como iPlanet, no usan este proceso de autenticación de contraseña. El método puede variar según la configuración de red. Los intentos de establecer la contraseña se producen en el orden siguiente:
- En primer lugar, el proveedor LDAP intenta usar LDAP a través de una conexión SSL de 128 bits. Para que LDAP SSL funcione correctamente, el servidor LDAP debe tener instalado el certificado de autenticación de servidor adecuado y los clientes que ejecutan el código ADSI deben confiar en la entidad que emitió esos certificados. Tanto el servidor como el cliente deben admitir el cifrado de 128 bits.
- En segundo lugar, si la conexión SSL no se realiza correctamente, el proveedor LDAP intenta usar Kerberos.
- En tercer lugar, si Kerberos no se realiza correctamente, el proveedor LDAP intenta una llamada API de NetUserSetInfo . En versiones anteriores, ADSI llamó a NetUserSetInfo en el contexto de seguridad en el que se estaba ejecutando el subproceso y no el contexto de seguridad especificado en la llamada a IADsOpenDSObject::OpenDSObject o ADsOpenObject. En versiones posteriores, esto se cambió para que el proveedor LDAP adsi suplantase al usuario especificado en la llamada a OpenDSObject cuando llama a NetUserSetInfo.
Ejemplos
En el ejemplo de código siguiente se muestra cómo establecer la contraseña de usuario, si tiene permiso para hacerlo.
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
En el ejemplo de código siguiente se muestra cómo establecer la contraseña de usuario, si tiene permiso para hacerlo.
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;
}
Requisitos
Cliente mínimo compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | iads.h |
Archivo DLL | Activeds.dll |