2009-02-05 3 views
2

질문 1 - 전자 메일 및 생성 된 암호 없이만 암호를 재설정 할 수있는 기능을 제공하고 싶습니다. 사용자는 작성한 사용자 지정 양식을 사용하여 내부 데이터베이스에 대해 자신을 확인합니다. 그런 다음 사용자 이름과 보안을 묻습니다. q & a. 암호 QA를 수행하는 f}을 모르므로 암호 회복 제어를 사용자 정의하기로했습니다. 새 비밀번호로 이메일을 보내지 않기를 바랍니다. 오히려 사용자 이름과 질문을 올바르게받은 경우 암호 재설정 페이지로 보내려고합니다.양식 Auth-pwd 복구 - 웹에서 사용자를 재설정하고 전자 메일을 보내지 않습니다.

사용자에게 보안 질문을 요청하고 사용자 지정 코드를 작성하거나 미리 작성된 구성 요소를 사용하여 비교할 수있는 방법이 있습니까? 또한 일단 암호를 다시 설정하면 어떻게 암호를 설정합니까?

질문 2- 저는 '사용자 이름 찾기'작업을하고 있습니다. 먼저 데이터베이스에 대해 확인합니다. 입력 내용에 따라 양식 인증 데이터베이스에서 사용자 이름과 사용자 ID를 일치시키고 찾을 수 있습니다. 그들에게 보안 질문을하고 싶지만 사용자가 aspnet 데이터베이스에있는 내용을 비교하기 위해 입력 한 내용에서 해시를 만드는 방법을 모릅니다. 이것을 할 수있는 방법이 있습니까?

감사합니다.

답변

6

asp.net 폼 인증을 사용하는 경우 보안 질문을 사용하여 사용자가 암호를 재설정 할 수있는 메커니즘을 제공합니다. 이 구성은 Web.config에서 구성 할 수 있으며 ASP.net 로그인 컨트롤의 일부인 암호 복구 컨트롤과 함께 사용할 수 있습니다. 회원 공급자 섹션의 web.config에서

설정 :

requiresQuestionAndAnswer은 - true로 설정하면 사용자의 암호를 검색하거나 재설정하는 질문보기가 필요합니다. false로 설정하면 질문보기가 사용자에게 표시되지 않습니다. 여기에 비밀 번호 복구 컨트롤을 사용

샘플 코드는 다음 ASP.net 로그인 컨트롤은 지금까지 이메일을 보내는 것과하지 http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/login/default.aspx

로 이동 사용에 대한 자세한 내용은

<asp:PasswordRecovery ID="PasswordRecovery1" runat="server"> 
    <QuestionTemplate> 
       <h2>Forgot Password</h2> 
       Hello <asp:Literal ID="UserName" runat="server"></asp:Literal><br /> 
       Please answer your password question : <br /> 
       <asp:Literal ID="Question" runat="server"></asp:Literal> 
       <asp:TextBox ID="Answer" runat="server"></asp:TextBox><br /> 
       <asp:Button ID="SubmitButton" runat="server" Text="Send Answer By Mail" 
CommandName="Submit"/><br /> 
        <asp:Literal ID="FailureText" runat="server"></asp:Literal> 
    </QuestionTemplate> 
    </asp:PasswordRecovery> 

, 당신은 취소 할 수 있습니다 Password Recovery 컨트롤에 OnSendingMail = "CancelEmail"을 추가하고 아래에 코드를 추가 한 다음 화면에 새 비밀번호 재설정을 표시하여 전자 메일을 보냅니다.

Sub CancelEmail(ByVal sender As Object, ByVal e As MailMessageEventArgs) 
     e.Cancel = True 
End Sub 

희망 하시겠습니까?