본문 바로가기

ASP.NET

[ASP.NET] 보안 #2 - 로그인 컨트롤 사용하기


로그인 컨트롤을 사용하기 위해 우선적으로 이해해야 할 멤버 자격(Membership)에 대해 알아보고 로그인 컨트롤 사용법에 대해 배워보겠습니다.

1. 멤버 자격(Membership)
멤버 자격은 ASP.NET에서 제공하는 로그인 컨트롤, 멤저 자격 API, 멤버 자격 공급자가 서로 유기적으로 동작하면서 사용자 생성, 로그인, 로그아웃 등등과 관련된 작업을 자동으로 처리해주는 기능이라고 이해하시면 됩니다.

로그인 컨트롤에는 여러 가지가 있는데 하나하나 집어보면서 소개해 드리겠습니다.

2. CreateUserWizard

CreateUserWizard 컨트롤은 사용자 정보를 입력받아 새로운 사용자를 만들어 주는 컨트롤 입니다.
아래는 CreateUserWizard 컨트롤을 웹 폼 위로 끌어다 놓았을 때의 모습입니다.

     <asp:CreateUserWizard ID="CreateUserWizard1" runat="server">

        <WizardSteps>

            <asp:CreateUserWizardStep runat="server" />

            <asp:CompleteWizardStep runat="server" />

        </WizardSteps>

    </asp:CreateUserWizard>




<사용자 만들기> 버튼을 클릭하면 새로운 사용자가 생성되겠죠. 이 때 CreateUserWizard 컨트롤을 통해 사용자가 입력한 정보는 아래의 ASPNETDB.MDF 파일에 저장됩니다. 이 파일은 <사용자 만들기> 버튼을 클릭해 사용자를 만들면 자동으로 생성됩니다.  


3. Login 컨트롤

Login 컨트롤은 로그인 기능을 제공하는 컨트롤 입니다.

 <asp:Login ID="Login1" runat="server">

        </asp:Login>




4. LoginView 컨트롤
LoginView 컨트롤은 인증된 사용자와 익명 사용자에게 보여줄 화면을 구분해서 표시하는 컨트롤 입니다.
아래 NAVER를 예로 들었습니다. 로그인을 통해 인증된 사용자는 아래와 같이 화면이 변하겠죠.



5. LoginName 컨트롤

LoginName 컨트롤은 인증된 사용자의 이름을 출력하는 컨트롤 입니다. 익명 사용자에게는 랜더링되지 않습니다.


6. LoginStatus 컨트롤

LoginStatus 컨트롤은 인증된 사용자에게는 로그아웃 링크를 표시하고 익명 사용자에게는 로그인 링크를 표시하는컨트롤 입니다.
익명 사용자에게 표시되는 로그인 링크를 클릭하면 구성 파일의 <authentication>요소 하위, <Form> 요소의 loginUrl 특성에서 지정한 페이지 URL로 이동합니다. 그리고 인증된 사용자에게 표시되는 로그아웃 링크를 클릭하면 자동으로 로그아웃되고 현재 페이지가 Refresh 됩니다.


7. ChangePassword 컨트롤

ChangePassword 컨트롤은 암호 수정 기능을 제공하는 컨트롤입니다.
이 컨트롤이 제대로 동작하기 위해서는 멤버 자격 공급자를 정의하는 <add> 요소의 passwordFormat 특성이 Clear 또는 Encrypted인 상태에서 사용자를 생성해야 하며, <add>요소의 enablePasswordRetrieval 특정이 True로 지정되어 있어야 합니다.



8. PasswordRecovery 컨트롤

PasswordRecovery 컨트롤은 사용자가 잊어버린 암호를 사용자의 전자메일로 발송하는 컨트롤입니다.


PasswordRecovery 컨트롤이 제기능을 하기 위해선 멤버 자격 공급자를 정의하는 <add>요소의 PasswordFormat 특성을 Clear 또는 Encrypted로 지정하고, enablePasswordRetrieval 특성을 True로 지정해야 합니다.

찾은 암호를 사용자에게 전자메일로 발송하기 위해서는 웹 서버에 SMTP 서비스가 설치 되어 있어야 하기 때문에 전자 메일이 발송되기 위해서는 최소한 다음과 같이 <asp:PasswordRecovery>컨트롤 선언 구문 하위에 <MailDefinition> 요소를 추가하여 From 속성을 설정해주고,

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

    <MailDefinition From = "ahr07@bse.inje.ac.kr">

    </MailDefinition>

</asp:PasswordRecovery>

Web.config 파일에 다음과 같은 SMTP의 Host 설정을 추가해야 합니다.

 <system.net>

         <mailSettings>

                 <smtp>

                     <network host ="127.0.0.1"/>

                 </smtp>

         </mailSettings>

</system.net>

PasswordRecovery 컨트롤이 실행되면 사용자 이름을 묻고, 그 다음 회원 가입 시 입력했던 보안 질문에 대한 보안 대답을 묻습니다. 만약 보안 대답이 정확하다면 회원 가입 시 입력했던 전자메일로 암호가 발송됩니다..


지금까지 로그인 컨트롤이 무엇인지 알아보고 사용하는 방법에 대해서도 알아보았습니다.
다음엔 보안의 마지막으로 멤버 자격 API와 역할 관리자에 대해 알아보도록 하겠습니다.




'ASP.NET' 카테고리의 다른 글

[ASP.NET] 보안 #3 - 멤버 자격 API와 역할 관리자  (0) 2012.01.17
[ASP.NET] 보안 #1 - 인증과 권한 부여  (0) 2012.01.17
[ASP.NET] 테마(Themes) #5  (0) 2012.01.17
[ASP.NET] 테마(Themes) #4  (0) 2012.01.17
[ASP.NET] 테마(Themes) #3  (0) 2012.01.17
[ASP.NET] 테마(Themes) #2  (0) 2012.01.17
[ASP.NET] 테마(Themes) #1  (0) 2012.01.17