2011-03-07 9 views
5

estoy usando un SqlMembershipProvider y almacenar mis contraseñas hash. También estoy guardando un historial de las contraseñas (hash) en otra tabla. Quiero poder comparar la contraseña a la que un usuario intenta cambiar su contraseña, con sus contraseñas antiguas y lanzar un error si era demasiado reciente. No parece poder descifrar cómo usar las funciones hash para hacer esto. Básicamente lo que estoy buscando es un método como este:Tratar de comparar el historial de contraseñas hash contraseñas creadas por SqlMembershipProvider

public bool PasswordCompare(string plaintextPassword, string salt, string hashedPassword) 
{ 
    //where the salt and hashedPassword are pulled out of the aspnet_Membership table 
    //which are automatically generated by the provider 
} 

Espero que esto esté claro, gracias.

+0

Por qué no simplemente poner un activador en la tabla aspnet_Membership que escribe la identificación de usuario, contraseña y la fecha y la hora actual en otra tabla de informes, que tendría entonces se le pregunta por los últimos cinco? – Thomas

+0

@Thomas ¿Su sugerencia es almacenar contraseñas en texto plano? –

+1

@Wyatt Barnett - Por supuesto que no. Puede almacenar el hash (y la sal) en una tabla de registro y comparar el hash y la sal actuales con esa lista. – Thomas

Respuesta

2

Esta entrada no tiene buena información. Parece que tiene que:

... implementar su propio personalizado MembershipProvider, registrar la historia contraseña y cifrar la contraseña por su cuenta propia.

SQLMembershipProvider: Comparing Hashed Passwords

+0

Y el enlace está muerto .... – Stephen

Cuestiones relacionadas