使用SqlMembership Provider重置后无法使用新密码登录

使用SqlMembership provider重置密码后。我无法使用新密码登录。 下面是用于重置dbo.aspnet_Membership表密码的代码行。 密码已加密。 每次重置密码时,表中都会存储一个新的加密值。 但无法登录。

我的webconfig设置:

      

C#代码:

 Membership user= Membership.GetUser(txtUser.Text); user.ResetPassword(txtNewPassword.Text); 

任何人都可以帮我这个。为什么我还不能用新密码登录?

ResetPassword实际上不是您应该用于设置新用户密码的function。 看到:

http://msdn.microsoft.com/en-us/library/d94bdzz2(v=vs.110).aspx

ResetPassword用于生成新的随机密码(想象一下忘记了我的密码链接)。 您正在使用的构造函数(字符串)不是用于密码,而是用于回答密码问题(如果适用)。

您实际应该使用的方法是ChangePassword 。 看到:

http://msdn.microsoft.com/en-us/library/system.web.security.membershipuser.changepassword(v=vs.110).aspx

你会消耗类似于:

 Membership user= Membership.GetUser(txtUser.Text); user.ChangePassword(oldPasswordString, txtNewPassword.Text);