Estoy trabajando en una solución simple para actualizar la contraseña de un usuario en Active Directory.¿Por qué Active Directory valida la última contraseña?
Puedo actualizar correctamente la contraseña de los usuarios. La actualización de la contraseña funciona bien. Digamos que el usuario ha actualizado la contraseña de MyPass1 a MyPass2
Ahora en que funciono mi código personalizado para validar a los usuarios Credencial usando:
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "TheDomain"))
{
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "MyPass2");
}
//returns true - which is good
Ahora, cuando entro en alguna contraseña incorrecta que valida muy bien:
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "TheDomain"))
{
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "wrongPass");
}
//returns false - which is good
Ahora, por alguna extraña razón, valida la última contraseña anterior que MyPass1 recuerda?
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "TheDomain"))
{
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "MyPass1");
}
//returns true - but why? we have updated password to Mypass2
que tiene el código de:
Validate a username and password against Active Directory?
¿Tiene algo que ver con la última contraseña de caducidad o ¿es así como la validación supone que funciona?
¿Cuán grande es la infraestructura de su dominio? Es posible que se conecte a un DC diferente cada vez y que la nueva contraseña no se haya replicado. –
Después de actualizar la contraseña a una nueva, no puedo iniciar sesión con la contraseña anterior, que es buena. Es solo cuando uso el método ValidateCredentials(), devuelve verdadero para la contraseña anterior :( tal vez algo relacionado con las credenciales almacenadas en caché? – theITvideos