我想手动更改数据库中的密码,但我不确定究竟需要更改什么以及使用哪种方法。我会通过代码更改它,但目前我只能访问db。
答案 0 :(得分:18)
如果要直接通过数据库更改密码,则需要创建新用户或查找您知道密码的现有用户。然后,您需要获取密码和salt,然后使用相同的密码和盐更新相关用户。
获取用户密码/ salt:
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]'
更改密码:
DECLARE @changeDate DATETIME
SET @changeDate = GETDATE()
EXEC aspnet_Membership_setPassword
'applicationName',
'user',
'password',
'passwordsalt',
@changeDate,
Passwordformat
取自here ......
答案 1 :(得分:1)
请参阅此页:http://www.asp.net/security/tutorials/recovering-and-changing-passwords-cs
代码调用存储过程:
与Membership框架中的其他方法一样,ResetPassword方法委托给配置的提供程序。 SqlMembershipProvider调用aspnet_Membership_ResetPassword存储过程,传入用户的用户名,新密码和提供的密码答案,以及其他字段。存储过程确保密码答案匹配,然后更新用户密码。