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.
En Active Directory, el autor de la llamada debe tener el derecho de acceso restablecer el control extendido contraseña para establecer la contraseña con este método.

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

Consulte también

Códigos de error adsi

IADs::SetInfo

IADsMembers

IADsServiceOperations

IADsUser

Métodos de propiedad IADsUser

NetUserSetInfo