2011-09-05 27 views

Respuesta

16

Si desea cambiar la contraseña directamente a través de la base de datos, necesitará crear un nuevo usuario o encontrar un usuario existente del que conoce la contraseña. Luego, tendrá que obtener la contraseña y la sal, y luego actualizar al usuario en cuestión con la misma contraseña y sal.

Obtener contraseña/sal del usuario:

SELECT 
    au.username, aa.ApplicationName, password, passwordformat, passwordsalt 
FROM 
    aspnet_membership am 
INNER JOIN 
    aspnet_users au ON (au.userid = am.userid) 
INNER JOIN 
    aspnet_applications aa ON (au.applicationId = aa.applicationid) 
WHERE 
    au.UserName = '[user to change password]' 

Cambiar la contraseña:

DECLARE @changeDate DATETIME 
SET @changeDate = GETDATE() 

EXEC aspnet_Membership_setPassword 
    'applicationName', 
    'user', 
    'password', 
    'passwordsalt', 
    @changeDate, 
    Passwordformat 

Tomado de here ...

+0

sólo tengo 1 usuario, lo que significa que tengo que crear uno nuevo ¿Cómo crear uno nuevo a través de db? ¿Posible? –

+0

resultó que mi cuenta también se bloqueó, así que solo tuve que desbloquearla. ¡Gracias! –

+0

Me alegro de que hayas dicho eso. Yo tuve el mismo problema. La solución más simple es: 'actualizar aspnet_Membership set IsLockedOut = 0' si está contento de editar todas las filas. –

1

Ver esta página: http://www.asp.net/security/tutorials/recovering-and-changing-passwords-cs

El código llama a un procedimiento almacenado:

Al igual que con los otros métodos en el marco de miembro, los delegados método ResetPassword al proveedor configurado. SqlMembershipProvider invoca el procedimiento aspnet_Membership_ResetPassword almacenados, pasando el nombre de usuario del usuario, la nueva contraseña y la respuesta de contraseña suministrada, entre otros campos. El procedimiento almacenado asegura que la respuesta de la contraseña coincida y luego actualiza la contraseña del usuario.

Cuestiones relacionadas