Compartir a través de


El usuario debe cambiar la contraseña en el siguiente inicio de sesión (proveedor LDAP)

Para forzar a un usuario a cambiar su contraseña en el siguiente inicio de sesión, establezca el atributo pwdLastSet en cero (0). Para quitar este requisito, establezca el atributo pwdLastSet en -1. El atributo pwdLastSet no se puede establecer en ningún otro valor excepto en el sistema.

En el ejemplo de código siguiente se muestra cómo establecer la opción "El usuario debe cambiar la contraseña en el siguiente inicio de sesión".

Dim usr as IADs

Set usr = GetObject("LDAP://CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=Com")
usr.Put "pwdLastSet", CLng(0)
usr.SetInfo

En el ejemplo de código siguiente se muestra cómo establecer la opción "El usuario debe cambiar la contraseña en el siguiente inicio de sesión".

/***************************************************************************

    SetUserMustChangePassword()

***************************************************************************/

HRESULT SetUserMustChangePassword(LPCWSTR pwszUserADsPath, 
                                  LPCWSTR pwszUsername, 
                                  LPCWSTR pwszPassword)
{
    IADs *pUser;
    HRESULT hr;

    hr = ADsOpenObject(pwszUserADsPath,
                        pwszUsername,
                        pwszPassword,
                        ADS_SECURE_AUTHENTICATION,
                        IID_IADs,
                        (void**)&pUser);

    if(SUCCEEDED(hr))
    {
        VARIANT var;
        VariantInit(&var);
        V_I4(&var) = 0;
        V_VT(&var) = VT_I4;
        hr = pUser->Put(CComBSTR("pwdLastSet"), var);
        hr = pUser->SetInfo();

        VariantClear(&var);
        pUser->Release();
    }

    return hr;
}