2009-07-01 3 views
0

.net 2.0에서 PasswordRecovery 컨트롤을 사용하는 데 도움이 필요합니다. 내 상황은 응용 프로그램이 해시에있는 암호 형식을 지우기에서 지우기로 변경되었습니다.MembershipProvider 및 PasswordRecovery 컨트롤

새로 만든 사용자에게 암호가 저장되어 있고 해시 된 암호가있는 사용자가있는 것이 문제입니다. 해시 된 암호가 아직있는 사용자의 경우 passwordRecovery 컨트롤을 사용할 때 해시 된 암호가있는 이전 사용자의 경우 'PasswordFormat'필드가 '지워지도록'변경되지 않습니다.

<asp:PasswordRecovery MailDefinition-BodyFileName="/mailTemplates/changePassword.htm" MailDefinition-From="[email protected]" 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> 

(재 게시하기위한 사전 사과).

+0

질문을 다시 게시하지 마십시오. 이전 질문을 편집하거나 업데이트하여 계속 사용하십시오. – womp

답변

1

해쉬 된 암호로 사용자를 변경하려면 멤버십 저장 프로 시저를 사용해야합니다. 암호는 해시되기 때문에 해시 알고리즘을 위반하는 경우를 제외하고는 절대로 복구되지 않습니다.

http://mishler.net/PermaLink,guid,ea65afc0-2970-46f1-9412-4b57bbd906f4.aspx을 참조하십시오. 기사 끝 부분의 "비밀번호 변경 형식"섹션으로 스크롤하십시오.

복구 페이지에서 저장 프로 시저를 실행하여 형식을 찾고 복구를 결정할 때 암호와 형식을 변경할 수 있습니다. 그러나보다 적극적으로 모든 해시 사용자 비밀번호를 변경하고 비밀번호를 재설정 한 이메일을 이메일로 보낼 수 있습니다.

관련 문제