Programming/.NET

PasswordRecovery 컨트롤은 회원으로 관리되는 특정 사용자가 자신의 비밀번호를 잊은 경우 해당 사용자에게 자신의 비밀번호를 알려주는 방법이 제공합니다.

 

<asp:PasswordRecovery ID="PasswordRecovery1" runat="server"></asp:PasswordRecovery>

 

대게 비밀번호는 사용자의 이메일을 통해 알려주는 방법을 사용하게 되는데 하위 MailDefinition 요소로 이메일 전송에 관한 설정을 진행할 수 있습니다.

 

<asp:PasswordRecovery ID="PasswordRecovery1" runat="server">

<MailDefinition From="anchor37@cliel.com" Subject="비밀번호 알려 드려요~"></MailDefinition>

</asp:PasswordRecovery>

 

필요에 따라 CC나 IsBodyHtml속성을 통해 메일에 관한 세부사항을 지정할 수 있습니다. 다만 이것으로 메일 발송이 가능한 것은 아니고 web.config에 실제 메일 발송이 가능한 메일서버설정이 이루어 져야 합니다.

 

<system.net>

    <mailSettings>

        <smtp deliveryMethod="Network" from="anchor37@cliel.com" >

        <network host="smtp.cliel.com" defaultCredentials="true" enableSsl="true" 

port="216" userName="anchor37" password="1234" />

        </smtp>

    </mailSettings>

</system.net>

 

일반적으로 위와같이 처리하면 사용자 메일을 통해 비밀번호를 전달하게 됩니다. 그러나 만약 Membership 공급자에 passwordFormat 속성이 hash로 되어 있는 경우에는 사용자에게 비밀번호를 전달해도 암호화된 내용이므로 실제 비밀번호가 무엇인지는 여전히 알 수 없습니다.

 

그래서 passwordFormat를 Clear나 Encrypted로 설정해서 비밀번호가 저장되는 방식을 바꾸거나 아니면 신규로 비밀번호를 생성해 사용자에게 전달해야 합니다. 대부분의 경우 후자쪽이 널리 쓰이는 방법입니다.

 

string password = Membership.GeneratePassword(10, 5);

 

Membership의 GeneratePassword는 비밀번호를 자동으로 생성하는 메소드입니다. 위 예제에서는 비밀번호를 특수문자 5개를 포함한 10자리로 생성하도록 하였습니다.

 

위 내용을 PasswordRecovery 컨트롤의 OnVerifyingAnswer 이벤트에 추가하여 사용자가 정상적으로 답변이 완료되면 비밀번호를 생성하고 메일로 발송하도록 처리하면 됩니다.

'Programming > .NET' 카테고리의 다른 글

[Visual Studio] Immediate Window  (0) 2017.07.12
[ASP.NET] SQL Server 캐시 종속성  (0) 2017.07.04
[ASP.NET] PasswordRecovery  (0) 2017.06.27
[ASP.NET] WindowsIdentity  (0) 2017.06.21
[ASP.NET] 웹파트(WebParts)  (0) 2017.06.13
[ASP.NET] 역활(Role)  (0) 2017.06.07
0 0