如何手动更改asp.net会员密码?

时间:2011-09-05 08:55:15

标签: asp.net passwords membership

我想手动更改数据库中的密码,但我不确定究竟需要更改什么以及使用哪种方法。我会通过代码更改它,但目前我只能访问db。

2 个答案:

答案 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存储过程,传入用户的用户名,新密码和提供的密码答案,以及其他字段。存储过程确保密码答案匹配,然后更新用户密码。