2011-09-05 17 views

risposta

16

Se si desidera modificare la password direttamente tramite il database, sarà necessario creare un nuovo utente o trovare un utente esistente di cui si conosce la password. Quindi, è necessario recuperare la password e salare, quindi aggiornare l'utente in questione con la stessa password e salt.

Prendi l'utente la password/sale:

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]' 

modificare la password:

DECLARE @changeDate DATETIME 
SET @changeDate = GETDATE() 

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

Tratto da here ...

+0

ho solo 1 utente, il che significa che devo creane uno nuovo. Come crearne uno nuovo via db? Possibile? –

+0

si è scoperto che anche il mio account era bloccato, quindi ho dovuto solo sbloccarlo. Grazie! –

+0

Sono contento che tu l'abbia detto. Ho avuto lo stesso problema. La soluzione più semplice è: 'update aspnet_Membership set IsLockedOut = 0' se sei felice di modificare tutte le righe. –

1

Vai a questa pagina: http://www.asp.net/security/tutorials/recovering-and-changing-passwords-cs

il codice chiama una stored procedure:

Come con gli altri metodi nel quadro appartenenza, il metodo delegati ResetPassword al provider configurato. Il SqlMembershipProvider richiama la stored procedure aspnet_Membership_ResetPassword, passando tra l'altro il nome utente dell'utente, la nuova password e la risposta fornita dalla password. La procedura memorizzata garantisce che la risposta della password corrisponda e aggiorna la password dell'utente.