首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果您不知道当前密码,如何使用asp.net成员资格提供程序更改哈希密码?

如果您不知道当前密码,如何使用asp.net成员资格提供程序更改哈希密码?
EN

Stack Overflow用户
提问于 2008-11-13 15:54:46
回答 2查看 25.9K关注 0票数 57

问题是,没有方法:

代码语言:javascript
复制
bool ChangePassword(string newPassword);

你必须知道当前的密码(这可能是散列和忘记)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-11-13 15:55:26

这是一个我浪费了太多时间的简单的问题。希望这篇文章能让其他人避免像我一样被拍打额头的痛苦。

解决方案,随机重置密码并将其传递给change方法。

代码语言:javascript
复制
MembershipUser u = Membership.GetUser();
u.ChangePassword(u.ResetPassword(), "myAwesomePassword");
票数 130
EN

Stack Overflow用户

发布于 2011-02-05 00:38:10

如果requiresQuestionAndAnswer=为“true”,则无法更改密码

我为这件事做了很多工作

在web.config中创建了两个成员资格提供程序

我使用AspNetSqlMembershipProviderReset提供程序来重置密码,因为它具有requiresQuestionAndAnswer= false,其中as AspNetSqlMembershipProvider是使用的默认提供程序。

我编写了以下代码来重置用户的密码。

public bool ResetUserPassword(String psUserName,String psNewPassword) { try { //使用secound成员资格提供程序获取成员资格用户详细信息,并将所需问题答案设置为false。

代码语言:javascript
复制
        MembershipUser currentUser = Membership.Providers["AspNetSqlMembershipProviderReset"].GetUser(psUserName,false);

        //Reset the user password.
        String vsResetPassword = currentUser.ResetPassword();            

        //Change the User password with the required password            
        currentUser.ChangePassword(vsResetPassword, psNewPassword);
        //Changed the comments to to force the user to change the password on next login attempt
        currentUser.Comment = "CHANGEPASS";
        //Check if the user is locked out and if yes unlock the user
        if (currentUser.IsLockedOut == true)
        {
            currentUser.UnlockUser();
        }
        Membership.Providers["AspNetSqlMembershipProviderReset"].UpdateUser(currentUser);            return true;
    }
    catch (Exception ex)
    {
        throw ex;
        return false;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/287320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档