2009-07-01 3 views
1

.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> 

답변

2

MembershipProvider에는 다중 암호 저장 체계를 사용할 수 없습니다. hasehd 암호가있는 모든 사용자에게 암호를 다시 설정하고 전자 메일에 사용자 이름과 함께 새로 자동 생성 된 암호를 보내야합니다.

모든 사용자의 비밀번호를 hasehd로 가져 가야합니다.

는 MemberShipProviders의 암호 저장을위한 균일 한 straegy이 있어야합니다.

+0

안녕하세요, 대단히 감사합니다. 모든 암호가 해시, 암호화 또는 암호화되어야한다는 귀하의 주장도 명시된 Microsoft 설명서가 있습니까? –

+0

나는 아직 하나도 발견하지 못했고 그것이 존재할 수도 있다고 생각하지 않는다. 공급자는 암호를 읽고 쓸 수있는 자체 메커니즘을 갖습니다. 따라서 해시 모드에서 수행하도록 구성된 경우 클리어 모드와 일치하지 않습니다. 단지 그것을 읽을 수있는 것만으로는 안되며, db가 형식을 알지 못하기 때문에 목적을 달성하지 못합니다. –

1

이 .__ curious_geek이 정확합니다. 자신의 주장을 확인하기 위해 Microsoft 설명서가 필요하지 않습니다. 해시 된 암호의 성격 상 고유합니다. 암호가 해시되면 을 복구 할 수 없습니다. 이것은 단순히 해싱의 성격 일 뿐이며 일방적 인 조작입니다. 양방향이라면 해싱이 아니라 암호화가 될 것입니다.

따라서 해시 암호를 일반 텍스트로 전환하면 암호가 해시 된 모든 사람의 암호를 재설정해야합니다. 암호를 다시 가져올 방법이 없습니다. 새 암호를 지정해야합니다.

관련 문제