在ASP.NET Forms身份验证中更改用户密码
我在C#(ASP.NET)中编写代码并使用Forms身份验证。
我想知道哪些是最好的方法来更改用户密码,而不使用asp:ChangePassword控件。
我不想使用重置密码方法。
我只想抓取我的文本框中的密码,并将其替换为旧密码。
请注意,我用了passwordFormat是了passwordFormat =“散列”
某些代码段将是有益的
编辑:在ASP.NET Forms身份验证中更改用户密码
在我的web.config,我已经设置enablePasswordRetrieval =“假”
我用下面的方法
var myUser = Membership.GetUser(userID);
bool isChangeSuccess = myUser.ChangePassword(
myUser.GetPassword(),
ActivateUserPasswordText.Text.Trim());
它给我的错误,
此会员供应商尚未将 配置为支持密码 检索。
可以做些什么来解决这些问题? 我真的很喜欢我的PasswordFormat自己哈希。
问候,
纳文何塞
把它解决了。感谢我的开发人员。
var myUser = Membership.GetUser(userID);
bool isChangeSuccess = myUser.ChangePassword(
myUser.ResetPassword(),
ActivateUserPasswordText.Text.Trim());
不能说我很喜欢它。
我以为ResetPassword()会返回一个布尔值。
只为密码的哈希值通常是由asp.net成员资格提供存储,因此无法获取原始密码。可以通过配置来改变这种行为,但不建议这样做。
只需在更改密码时要求用户输入旧密码。您可以在User.ChangePassword方法中使用用户输入的旧密码,它应该可以正常工作。
我的意图是为丢失的密码创建检索密码 – naveen 2010-06-11 07:28:51
此会员供应商尚未配置为支持密码检索。
上面的消息显示是因为您的密码格式为盐,因此您无法获取用户的密码。如果您想这样做,请更改密码格式并重试。
感谢dileep。我对如何检索旧密码感到好奇,而'ChangePassword'确实需要使用旧密码作为参数。 – naveen 2012-04-09 02:07:49
在关闭的机会有人使用ApplicationUser而不是成员 - 因为我是因为我不想设定一个会员提供商 - 您可以更改密码,这种方式:
Dim manager = New UserManager()
Dim userChange As ApplicationUser = manager.FindById(IDUser)
userChange.PasswordHash = manager.PasswordHasher.HashPassword(newPassword.Value)
Dim val As Object = manager.Update(userChange)
希望这有助于有人
它返回一个随机生成的新密码的字符串http://msdn.microsoft.com/en-us/library/system.web.security.membershipuser。 resetpassword.aspx – 2013-01-17 14:58:23
@JPHollmons:我说我以为:) – naveen 2013-01-17 17:40:13