C# MembershipProvider和PasswordRecovery控件

C# MembershipProvider和PasswordRecovery控件,c#,.net,.net-2.0,asp.net-membership,membership,C#,.net,.net 2.0,Asp.net Membership,Membership,我需要使用.NET2.0中的PasswordRecovery控件的帮助。我的情况是,应用程序已从以哈希格式存储passwordformat更改为Clear 问题是新创建的用户存储了一个清晰的密码,仍然有用户使用哈希密码。当我为仍然拥有哈希密码的用户使用下面的passwordRecovery控件时,“PasswordFormat”字段对于那些之前拥有哈希密码的用户不会更改为“clear” <asp:PasswordRecovery MailDefinition-BodyFileName="/

我需要使用.NET2.0中的PasswordRecovery控件的帮助。我的情况是,应用程序已从以哈希格式存储passwordformat更改为Clear

问题是新创建的用户存储了一个清晰的密码,仍然有用户使用哈希密码。当我为仍然拥有哈希密码的用户使用下面的passwordRecovery控件时,“PasswordFormat”字段对于那些之前拥有哈希密码的用户不会更改为“clear”

<asp:PasswordRecovery MailDefinition-BodyFileName="/mailTemplates/changePassword.htm" MailDefinition-From="test@test.com" MailDefinition-Subject="Test" CssClass="noLines" ID="PasswordRecovery1" UserNameTitleText="" UserNameInstructionText="Enter User name and a new passord will be generated and mailed to the user"  runat="server" SuccessText="Your password has been sent to your registered email address." SubmitButtonStyle-CssClass="button" 
    onsendingmail="PasswordRecovery1_SendingMail" MembershipProvider="AspNetSqlMembershipProviderF0005600">
    </asp:PasswordRecovery>

<membership>
  <providers>
    <remove name="AspNetSqlMembershipProviderF0005600"/>
    <add name="AspNetSqlMembershipProviderF0005600" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" passwordFormat="Clear" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
  </providers>
</membership>


(对于重新发布,请提前道歉)。

简短的回答是,您必须使用成员资格存储过程为使用哈希密码的用户更改此项。由于密码是散列的,因此无论如何都不会恢复密码(除非破坏散列算法)

看。滚动到文章末尾的“更改密码格式”部分


在恢复页面上,您可以运行存储过程来查找格式,并在用户决定使用恢复时更改密码和格式。但您可以更主动地更改所有散列用户密码,并向那些密码已重置的用户发送电子邮件。

请不要重新发布问题。编辑或更新旧问题以使其保持活动状态。