연습: 멤버 자격과 사용자 로그인을 사용하는 웹 사이트 만들기

업데이트: 2007년 11월

웹 사이트에서 일반적으로 요구되는 기능은 일부 멤버나 기타 인증된 사용자만 특정 페이지를 볼 수 있도록 허용하는 기능입니다. 이 경우 응용 프로그램은 사용자에게 이름과 암호를 입력하라는 메시지를 표시해야 합니다. 또한 익명 사용자(로그인하지 않은 사용자)가 정보를 볼 수 없도록 숨기는 방법도 제공해야 합니다. 이 연습에서는 ASP.NET 컨트롤 및 ASP.NET 멤버 자격 서비스를 사용하여 이러한 모든 작업을 수행하는 응용 프로그램을 만드는 방법을 보여 줍니다. 자세한 내용은 멤버 자격 소개를 참조하십시오.

이 연습에서 수행할 작업은 다음과 같습니다.

  • ASP.NET 멤버 자격 서비스를 포함하도록 응용 프로그램을 구성하고 사용자 정의 방법 구성

  • Login 컨트롤을 사용하여 사용자 자격 증명을 가져오고 로그인한 사용자에게 정보 표시

  • 로그인한 사용자만 볼 수 있도록 응용 프로그램에 있는 하나 이상의 페이지 보호

  • 새 사용자가 사이트에 등록할 수 있도록 허용

  • 멤버가 암호를 변경하고 다시 설정할 수 있도록 허용

사전 요구 사항

이 연습을 따라 하려면 다음과 같은 요건을 갖추어야 합니다.

  • Microsoft Visual Web Developer

  • 로컬 컴퓨터에 설치되어 있는 Microsoft IIS(인터넷 정보 서비스)

  • 컴퓨터에 로컬로 설치된 SQL Server Express Edition

  • MDAC(Microsoft Data Access Components) 버전 2.7 이상. Microsoft Windows XP나 Windows Server 2003을 사용하고 있는 경우 MDAC 2.7이 이미 설치되어 있습니다. 그러나 Microsoft Windows 2000을 사용하는 경우 컴퓨터에 이미 설치된 MDAC를 업그레이드해야 합니다. 자세한 내용은 MSDN library에서 "Microsoft Data Access Components (MDAC) Installation" 문서를 참조하십시오.

  • 전자 메일 메시지를 전달할 수 있는 전자 메일 서버에 대한 액세스 권한. 이 서버에서 메시지를 받을 수 있어야 하는 것은 아닙니다. IIS에는 이 연습에 적합한 메일 서버인 기본 SMTP 가상 서버가 포함되어 있습니다. 이 서버를 구성하는 방법에 대한 자세한 내용은 방법: IIS 6.0에서 SMTP 가상 서버 설치 및 구성을를 참조하십시오. LAN에서 작업할 경우 네트워크 관리자에게 전자 메일 서버 액세스를 위한 정보를 확인하십시오.

웹 사이트 만들기

연습: Visual Web Developer에서 기본 웹 페이지 만들기 항목의 작업을 수행한 경우를 비롯하여 Microsoft Visual Studio에서 이미 웹 사이트를 만든 경우에는 해당 웹 사이트를 사용하고 이 연습의 뒷부분에 나오는 "멤버 자격 구성"으로 건너뛸 수 있습니다. 그렇지 않으면, 다음 단계를 따라 새 웹 사이트와 페이지를 만듭니다.

로컬 IIS 웹 사이트를 만들려면

  1. Visual Studio를 엽니다.

  2. 파일 메뉴에서 새웹 사이트를 클릭합니다.

    새 웹 사이트 대화 상자가 나타납니다.

  3. Visual Studio에 설치되어 있는 템플릿에서 ASP.NET 웹 사이트를 선택합니다.

  4. 위치 목록 상자에서 HTTP를 선택합니다. 찾아보기를 클릭합니다.

    위치 선택 대화 상자가 표시됩니다.

  5. 로컬 IIS를 선택합니다.

  6. 로컬 웹 서버를 엽니다.

  7. 기본 웹 사이트를 선택합니다.

  8. 웹 사이트 목록 위에 있는 새 웹 응용 프로그램 만들기 아이콘(새 웹 응용 프로그램 만들기 단추)을 클릭한 후 새 웹 사이트 이름을 membership으로 지정합니다.

  9. 열기를 클릭합니다.

    위치 선택 대화 상자가 닫힙니다.

  10. 언어 상자에서 작업할 프로그래밍 언어를 클릭합니다.

    선택하는 프로그래밍 언어는 웹 사이트의 기본 언어가 되지만 페이지마다 개별적으로 프로그래밍 언어를 설정할 수 있습니다.

  11. 새 웹 사이트 대화 상자에서 확인을 클릭합니다.

    Visual Web Developer에서는 해당 웹 사이트와 Default.aspx라는 새 페이지를 만듭니다.

멤버 자격 구성

이 연습의 뒷부분에서는 보호 설정된 하위 디렉터리에 페이지를 추가합니다. 연습 뒷부분에서 해당 보안을 구성할 수 있도록 하위 디렉터리를 만들어야 합니다.

웹 사이트에 새 폴더를 추가하려면

  1. 솔루션 탐색기에서 웹 사이트 이름을 마우스 오른쪽 단추로 클릭하고 새 폴더를 클릭합니다.

  2. 폴더 이름을 MemberPages로 지정합니다.

ASP.NET 멤버 자격으로 작업하기 전에 멤버 자격을 사용하도록 설정하고 사용자를 설정하도록 응용 프로그램을 구성해야 합니다. 구성 설정을 지정하기 위한 마법사 유형의 인터페이스를 제공하는 웹 사이트 관리 도구를 사용할 수 있습니다. 설치 마법사를 완료하면 ASPNETDB.MDF라는 SQL Server 데이터베이스가 프로젝트의 App_Data 폴더에 만들어집니다.

이 연습을 위해 단일 사용자를 정의합니다.

멤버 자격 사용자를 만들려면

  1. 웹 사이트 메뉴에서 ASP.NET 구성을 클릭합니다.

  2. 보안 탭을 선택하고 보안 설정 마법사를 사용하여 보안을 단계별로 구성하십시오. 링크를 클릭한 후 다음을 클릭합니다.

  3. 마법사의 2단계를 진행하고 인터넷 옵션을 선택합니다.

    웹 사이트에서 사용될 인증 방법을 선택할 수 있는 페이지가 표시됩니다. 이 옵션을 선택하면 사용자들이 이 연습 뒷부분에서 만들게 될 로그인 페이지를 사용하여 응용 프로그램에 로그인하는 폼 인증이 사용됩니다.

  4. 다음을 클릭합니다.

    사용자 정보가 고급 공급자 설정을 사용하여 저장됨을 나타내는 메시지가 표시됩니다. 기본적으로 멤버 자격 정보는 웹 사이트의 App_Data 폴더에 있는 Microsoft SQL Server Express 데이터베이스 파일에 저장됩니다.

  5. 다음을 클릭합니다.

    역할을 만들기 위한 옵션이 표시됩니다. 이 단계는 이 연습의 뒷부분에서 수행합니다. 따라서 이 웹 사이트에 역할을 사용하도록 설정합니다. 확인란을 선택하지 마십시오.

  6. 다음을 클릭합니다.

    새 사용자를 만들 수 있는 페이지가 표시됩니다.

  7. 응용 프로그램의 사용자를 정의하는 정보를 입력합니다. 다음 값을 참조하여 정보를 입력하십시오. 원하는 값을 사용할 수 있지만 이 연습의 이후 과정을 위해 설정 항목을 적어두십시오.

    • 사용자 이름   사용자 이름(공백 포함 안 함) 또는 샘플 이름입니다.

    • 암호   암호입니다. 대문자와 소문자, 문장 부호를 포함하며 길이가 8자 이상인 강력한 암호를 지정해야 합니다.

    • 전자 메일   개인 전자 메일 주소입니다. 이 연습의 뒷부분에서 전자 메일 메시지를 직접 보내게 되므로 적절한 전자 메일 주소가 필요합니다.

    • 보안 질문 및 보안 대답   나중에 암호를 복구해야 할 경우에 사용할 수 있는 질문과 대답을 입력합니다.

  8. 사용자 만들기를 클릭합니다.

    확인 페이지가 표시됩니다.

    참고:

    웹 사이트 관리 도구를 그대로 열어 둡니다.

이 연습의 앞부분에서 MemberPages라는 폴더를 만들었습니다. 이 연습 부분에서는 로그인한 사용자만 해당 폴더의 페이지에 액세스할 수 있는 규칙을 만듭니다.

MemberPages 하위 디렉터리에 대한 액세스 규칙을 설정하려면

  1. 마법사에서 다음을 클릭합니다.

    액세스 규칙을 만들 수 있는 페이지가 표시됩니다.

  2. 새 액세스 규칙 추가 상자에서 웹 사이트에 대한 노드를 확장합니다.

  3. 앞에서 만든 MemberPages 폴더를 선택합니다.

  4. 규칙 적용 대상에서 익명 사용자를 선택합니다.

  5. 권한에서 거부를 선택합니다.

    만드는 규칙은 익명 사용자, 즉 로그인하지 않은 사용자의 액세스를 거부합니다.

  6. 이 규칙 추가를 클릭합니다.

    아래 표에 새 규칙이 표시됩니다. 사용자가 MemberPages 하위 디렉터리의 페이지를 요청하면 규칙을 점검하여 해당 사용자가 페이지에 액세스할 수 있는지 여부를 확인합니다.

  7. 마침을 클릭합니다.

    이제 마법사 작업이 끝났습니다. 마법사는 닫히고 웹 사이트 관리 도구의 보안 탭으로 돌아갑니다.

전자 메일에 대한 응용 프로그램 구성

이 연습에서는 응용 프로그램이 전자 메일 메시지를 보낼 수 있어야 합니다. 응용 프로그램은 메시지를 보내기 위해 해당 응용 프로그램에서 전자 메일 받는 사람에게 전자 메일 메시지를 전달하는 SMTP(Simple Mail Transport Protocol) 서버에 액세스할 수 있어야 합니다.

IIS에는 이 연습에 적합한 선택적 구성 요소로 기본 SMTP 가상 서버가 포함되어 있습니다. 이 서버를 구성하는 방법에 대한 자세한 내용은 방법: IIS 6.0에서 SMTP 가상 서버 설치 및 구성을를 참조하십시오. LAN에서 작업할 경우 네트워크 관리자에게 전자 메일 서버 액세스를 위한 정보를 확인하십시오.

SMTP 서버 액세스 방법을 설정하거나 결정한 후에 전자 메일 메시지를 해당 서버로 라우팅하도록 응용 프로그램을 구성해야 합니다. 응용 프로그램 실행 방식을 결정하는 일련의 설정이 들어 있는 웹 사이트의 Web.config 파일에 엔트리를 입력하여 이와 같이 응용 프로그램을 구성할 수 있습니다.

특정 SMTP 서버를 사용하도록 응용 프로그램을 구성하려면

  1. 웹 사이트 관리 도구에서 응용 프로그램 탭을 클릭합니다.

  2. SMTP 설정에서 SMTP 전자 메일 설정 구성을 클릭합니다.

    전자 메일을 구성할 수 있는 페이지가 표시됩니다.

  3. 컴퓨터에 있는 SMTP 가상 서버를 사용할 경우에는 서버 이름으로 localhost를 입력하고, 그렇지 않으면 적절한 서버 이름을 입력합니다.

    사용하는 SMTP 서버 요구 사항에 따라 포트 번호 및 인증에 대한 정보를 포함합니다. 이러한 설정을 구성하는 방법에 대한 자세한 내용은 관리자에게 문의하십시오.

  4. 보낸 사람 상자에 유효한 전자 메일 주소를 입력합니다.

  5. 저장을 클릭하고 확인 페이지에서 확인을 클릭합니다.

    Web.config 파일이 없는 경우 웹 사이트 관리 도구는 사용자가 지정한 설정을 사용하여 이 파일을 만듭니다.

    참고:

    뷰를 새로 고칠 때까지 솔루션 탐색기에 Web.config 파일이 나타나지 않습니다.

  6. 웹 사이트 관리 도구를 닫습니다.

사용자 로그인

응용 프로그램이 사용자가 누구인지에 따라 정보를 표시하거나 숨기는 등의 작업을 수행할 수 있도록 사용자 ID를 설정해야 합니다. 사용자 ID를 가져오려면 사용자가 로그인해야 합니다.

이 연습에서는 사용자를 로그인 페이지로 이동시키는 링크를 홈 페이지에 추가한 후 로그인 페이지를 만듭니다.

로그인 단추가 있는 홈 페이지를 만들려면

  1. 사이트의 Default.aspx 페이지를 열거나 해당 페이지로 이동합니다. Default.aspx 페이지가 없으면 해당 페이지를 추가하거나 다른 페이지를 사용할 수 있습니다.

  2. 디자인 뷰로 전환합니다.

  3. 사이트를 시작합니다.와 같은 정적 텍스트를 입력하고 서식 도구 모음에서 블록 서식 드롭다운 목록을 사용하여 텍스트 서식을 제목 1로 지정합니다.

  4. 도구 상자의 로그인 그룹에서LoginStatus 컨트롤을 페이지로 끌어 옵니다.

기본적으로 LoginStatus 컨트롤은 링크로 렌더링됩니다. 사용자가 이 링크를 클릭하면 로그인 페이지가 표시됩니다. 이제 로그인 페이지를 만들 수 있습니다.

로그인 페이지를 만들려면

  1. 솔루션 탐색기에서 웹 응용 프로그램을 마우스 오른쪽 단추로 클릭하고 새 항목 추가를 클릭합니다. 이름이 Login.aspx인 Web Form을 사이트에 추가합니다.

    참고:

    이 연습에서는 해당 페이지 이름이 Login.aspx여야 합니다. 기본적으로 이 이름의 페이지에 사용되는 폼 인증이 구성됩니다. 이 연습에서는 사용자가 리디렉션되는 기본 로그인 페이지를 변경하지 않지만 Web.config 파일에서 이 페이지를 변경할 수 있습니다.

  2. Login.aspx 페이지에서 디자인 뷰로 전환합니다.

  3. 도구 상자의 로그인 그룹에서 Login 컨트롤을 페이지로 끌어 옵니다.

    Login 컨트롤은 사용자에게 자격 증명을 요구하고 해당 자격 증명에 대해 유효성 검사를 수행하는 단일 컨트롤입니다.

로그인 오류 표시

Login 컨트롤에는 사용자가 올바른 정보를 입력하도록 도와 주는 유효성 검사 기능이 포함되어 있습니다. 예를 들어, 사용자가 암호를 입력하지 않으면 유효성 검사기 컨트롤은 암호 상자 옆에 별표(*)를 표시합니다. 페이지에 ValidationSummary 컨트롤을 추가하여 로그인 오류에 대한 보다 자세한 정보를 제공할 수 있습니다.

자세한 로그인 오류를 표시하려면

  1. 도구 상자의 유효성 검사 그룹에서 ValidationSummary 컨트롤을 페이지로 끌어 옵니다.

  2. ValidationSummary 컨트롤의 속성 창에서 ValidationGroup 속성을 Login1로 설정합니다. 이 값은 이전에 추가한 Login 컨트롤의 기본 ID입니다.

로그인한 사용자에 대한 정보 표시

이제 사용자의 로그인 여부에 따라 화면을 사용자 지정하도록 홈 페이지를 수정합니다. 익명 사용자에게는 로그인하도록 요청하는 일반 메시지가 표시되고 로그인한 사용자에게는 로그인한 이름을 넣어 사용자를 환영하는 메시지를 표시합니다.

로그인한 사용자에게 표시되는 화면을 사용자 지정하려면

  1. Default.aspx 페이지로 전환하거나 이 페이지를 엽니다.

  2. 도구 상자의 로그인 그룹에서 LoginView 컨트롤을 페이지로 끌어 옵니다.

    LoginView 컨트롤이 표시되고 해당 AnonymousTemplate 템플릿이 열립니다. 이 템플릿을 사용하여 로그인하지 않은 사용자에게 표시될 내용을 정의할 수 있습니다.

  3. LoginView 컨트롤의 편집 영역을 클릭하여 편집을 활성화합니다.

  4. LoginView 컨트롤의 AnonymousTemplate 템플릿에 있는 편집 영역에서 로그인되지 않았습니다. 로그인하려면 로그인 링크를 클릭하십시오.를 입력합니다.

  5. LoginView 작업 패널의 뷰 목록에서 LoggedInTemplate을 클릭합니다. LoginView 작업 패널이 표시되지 않으면 LoginView 컨트롤의 머리글을 마우스 오른쪽 단추로 클릭하고 스마트 태그 표시를 선택합니다.

    이제 로그인한 사용자에게 표시되는 내용이 정의되었습니다.

  6. LoginView 컨트롤의 편집 영역을 클릭하여 편집을 활성화한 후 로그인되었습니다.를 입력합니다.

  7. 도구 상자의 로그인 그룹에서 LoginName 컨트롤을 템플릿의 해당 텍스트 뒤로 끌어 옵니다.

로그인 테스트

이제 응용 프로그램의 로그인 기능을 테스트할 수 있습니다.

로그인을 테스트하려면

  1. 솔루션 탐색기에서 Default.aspx를 마우스 오른쪽 단추로 클릭하고 시작 페이지로 설정을 클릭합니다.

    이렇게 하면 웹 사이트 실행 시 Default.aspx 페이지가 먼저 나타나도록 사이트가 구성됩니다.

  2. Ctrl+F5를 눌러 웹 사이트를 실행합니다.

    브라우저에 홈 페이지(Default.aspx)가 나타나며 로그인 링크와 일반 메시지가 표시됩니다.

  3. 로그인 링크를 클릭합니다.

    앞에서 만든 로그인 페이지가 표시됩니다.

  4. 이 연습의 앞부분에서 만든 사용자의 로그인 이름을 입력한 후 로그인을 클릭합니다. 암호는 아직 입력하지 마십시오.

    암호 상자 옆에 별표(*)가 표시되고 ValidationSummary 컨트롤에 오류 메시지가 표시됩니다.

  5. 사용자 이름과 암호를 입력한 후 로그인을 클릭합니다.

    올바른 자격 증명을 입력하면 홈 페이지로 돌아갑니다. 이제 페이지에는 로그아웃 링크, 사용자 이름 및 로그인한 사용자에게 표시되도록 정의한 시작 메시지가 표시됩니다.

  6. 브라우저를 닫습니다.

멤버 전용 페이지에 대한 액세스 제한

많은 웹 사이트에서 수행되는 일반적인 작업 한 가지는 로그인한 사용자만 페이지를 볼 수 있도록 페이지를 구성하는 것입니다. 이 연습 앞부분에서 MemberPages 하위 디렉터리를 만들고 이 하위 디렉터리의 페이지에 대한 액세스를 제한하는 규칙을 만들었습니다. 이 연습 단원에서는 보호된 하위 디렉터리에 페이지를 추가하고 액세스 규칙을 테스트합니다.

멤버 전용 페이지를 만들려면

  1. 솔루션 탐색기에서 MemberPages 폴더를 마우스 오른쪽 단추로 클릭하고 새 항목 추가를 클릭한 후 이름이 Members.aspx인 새 Web Form을 추가합니다.

    참고:

    이 페이지는 반드시 MemberPages 폴더에 만들어야 합니다.

  2. 디자인 뷰에서 회원 여러분 환영합니다!와 같은 텍스트를 페이지에 추가합니다. 브라우저에서 페이지를 볼 때 이 텍스트를 통해 페이지 내용을 파악할 수 있기만 하면 되며 정확한 텍스트 내용은 문제가 되지 않습니다.

이제 홈 페이지에서 멤버 전용 페이지로 연결되는 링크를 추가할 수 있습니다. 실제 응용 프로그램에서는 LoginView 컨트롤의 로그인 템플릿에 멤버 전용 페이지 링크를 추가할 수 있습니다. 이렇게 하면 사이트 방문객은 로그인할 때까지 해당 링크를 볼 수 없습니다. 그러나 이 연습에서는 로그인하지 않은 상태로 멤버 전용 페이지를 보려고 할 때의 결과를 알 수 있도록 모든 사용자가 해당 링크를 사용할 수 있게 만듭니다.

멤버 전용 페이지에 대한 링크를 추가하려면

  1. Default.aspx 페이지로 전환하거나 이 페이지를 엽니다.

  2. 도구 상자의 표준 그룹에서 HyperLink 컨트롤을 페이지로 끌어 옵니다.

  3. HyperLink 컨트롤의 속성 창에서 Text 속성을 멤버 페이지로 설정하고 href 속성을 ~/MemberPages/Members.aspx로 설정하여 앞에서 만든 페이지를 가리키도록 합니다.

멤버 전용 페이지 테스트

멤버 전용 페이지에 익명 사용자와 로그인한 사용자 모두로 액세스하여 해당 페이지를 테스트할 수 있습니다.

멤버 전용 페이지를 테스트하려면

  1. Ctrl+F5를 눌러 웹 사이트를 실행합니다.

  2. 브라우저에 Default.aspx 페이지가 나타나면 로그인하지 말고 멤버 페이지 링크를 클릭합니다.

    익명 사용자의 경우 멤버 페이지에 대한 액세스가 거부되므로 Login.aspx 페이지로 리디렉션됩니다.

  3. 로그인 페이지에서 이 연습의 앞부분에서 만든 사용자 이름과 암호를 입력하여 로그인합니다.

    로그인한 사용자 이름은 해당 페이지에 액세스할 수 있는 권한이 있으므로 Members.aspx 페이지로 리디렉션됩니다.

  4. 브라우저 창을 닫습니다.

새 사용자 만들기

이 연습의 첫 번째 부분에서는 웹 사이트 관리 도구를 사용하여 사용자를 만들었습니다. 이 방법은 소규모 팀에 속하는 사용자를 만드는 경우처럼 정의된 소규모의 사용자 목록으로 작업하려는 경우에 유용합니다. 그러나 많은 웹 사이트에서는 사용자들이 직접 등록할 수 있습니다. ASP.NET에는 앞에서 웹 사이트 관리 도구를 사용하여 수행했던 것과 동일한 작업을 수행하는 CreateUserWizard 컨트롤이 포함되어 있습니다.

이 연습 부분에서는 사용자가 웹 사이트에 등록할 수 있는 기능을 추가합니다. 먼저 등록 페이지를 만듭니다.

등록 페이지를 만들려면

  1. 솔루션 탐색기에서 웹 사이트의 이름을 마우스 오른쪽 단추로 클릭하고 새 항목 추가를 클릭한 후 이름이 Register.aspx인 새 Web Form을 추가합니다.

    참고:

    이 페이지는 MemberPages 폴더가 아닌 웹 사이트의 루트에 만들어야 합니다.

  2. Register.aspx 페이지에서 디자인 뷰로 전환한 후 등록과 같은 정적 텍스트를 페이지에 입력합니다. 서식 도구 모음에서 블록 서식 드롭다운 목록을 사용하여 텍스트 서식을 제목 1로 지정합니다.

  3. 도구 상자의 로그인 그룹에서 CreateUserWizard 컨트롤을 페이지로 끌어 옵니다.

  4. CreateUserWizard 컨트롤의 속성 창에서 ContinueDestinationPageUrl 속성을 ~/Default.aspx로 설정합니다.

    이렇게 하면 사용자를 만든 후에 계속을 클릭할 경우 홈 페이지로 돌아가도록 컨트롤이 구성됩니다.

  5. 도구 상자의 표준 그룹에서 HyperLink 컨트롤을 페이지로 끌어 옵니다. HyperLink 컨트롤에 대한 속성 창에서 Text 속성을 홈으로 설정하고 href 속성을 ~/Default.aspx로 설정합니다.

이제 등록 페이지를 표시하는 링크를 홈 페이지에 추가할 수 있습니다. 이 연습에서는 로그인하지 않은 사용자에게만 등록 링크가 표시된다고 가정합니다.

홈 페이지에 등록 링크를 만들려면

  1. Default.aspx 페이지로 전환하거나 이 페이지를 엽니다.

  2. 이전에 추가한 LoginView 컨트롤을 마우스 오른쪽 단추로 클릭한 다음 스마트 태그 표시를 클릭합니다. LoginView 작업 패널의 뷰 목록 상자에서 AnonymousTemplate을 선택하여 익명 템플릿의 편집을 활성화합니다.

  3. 도구 상자의 표준 그룹에서 HyperLink 컨트롤을 템플릿으로 끌어 옵니다. HyperLink 컨트롤의 속성 창에서 Text 속성을 등록으로 설정하고 href 속성을 Register.aspx로 설정합니다. 로그인하지 않은 사용자에게만 등록 링크가 표시됩니다.

이제 등록 프로세스를 테스트할 수 있습니다.

등록을 테스트하려면

  1. Ctrl+F5를 눌러 웹 사이트를 실행하고 Default.aspx 페이지를 표시합니다.

    로그인하지 않았으므로 등록 링크가 들어 있는 페이지가 표시됩니다.

  2. 등록 링크를 클릭합니다.

    등록 페이지가 표시됩니다.

  3. 텍스트 상자에 새 사용자 이름, 강력한 암호, 전자 메일 주소 및 보안 질문과 대답을 입력합니다. 이러한 다섯 가지 정보는 모두 필수 항목입니다.

  4. 사용자 만들기를 클릭합니다.

    확인 메시지가 표시됩니다.

  5. 계속 단추를 클릭합니다.

    로그인한 사용자 상태로 홈 페이지로 돌아갑니다. 로그인 링크가 로그아웃으로 변경되고 Login 컨트롤에는 AnonymousTemplate 속성이 아닌 LoggedInTemplate 속성에서 가져온 정보가 표시됩니다.

  6. 로그아웃 링크를 클릭합니다.

    페이지가 변경되어 익명 사용자에 대한 정보를 표시합니다.

  7. 로그인 링크를 클릭합니다.

  8. 방금 만든 사용자에 대한 자격 증명을 입력합니다.

    새 사용자로 로그인됩니다.

  9. 브라우저 창을 닫습니다.

암호 변경

사용자가 암호를 변경하고 싶은 경우에도 직접 암호를 변경하는 것이 불가능한 경우가 있습니다. 다른 ASP.NET 컨트롤을 사용하여 사용자들이 직접 암호를 변경하도록 할 수 있습니다. 암호를 변경하려면 기존 암호를 알아야 합니다.

이 연습에서는 로그인한 사용자가 본인의 암호를 변경할 수 있는 페이지를 추가합니다.

암호 변경 페이지를 만들려면

  1. 솔루션 탐색기에서 MemberPages 폴더를 마우스 오른쪽 단추로 클릭하고 새 항목 추가를 클릭한 후 이름이 ChangePassword.aspx인 새 Web Form을 추가합니다.

    참고:

    이 페이지는 반드시 MemberPages 폴더에 만들어야 합니다.

    로그인한 사용자만 본인의 암호를 변경할 수 있으므로 해당 페이지를 멤버 전용 폴더에 저장합니다.

  2. ChangePassword.aspx 페이지에서 디자인 뷰로 전환한 후 암호 변경과 같은 정적 텍스트를 입력합니다. 서식 도구 모음에서 블록 서식 드롭다운 목록을 사용하여 텍스트 서식을 제목 1로 지정합니다.

  3. 도구 상자의 로그인 그룹에서 ChangePassword 컨트롤을 페이지로 끌어 옵니다.

  4. ChangePassword 컨트롤의 속성 창에서 ContinueDestinationPageUrl 속성을 ~/Default.aspx로 설정합니다.

  5. 이렇게 하면 사용자가 암호를 변경한 후에 계속을 클릭할 경우 홈 페이지로 돌아가도록 컨트롤이 구성됩니다.

이제 암호 변경 페이지를 표시하는 링크를 홈 페이지에 추가할 수 있습니다. 이 링크를 로그인한 사용자만 사용할 수 있게 만듭니다.

홈 페이지에 암호 변경 링크를 만들려면

  1. Default.aspx 페이지로 전환하거나 이 페이지를 엽니다.

  2. LoginView 컨트롤을 마우스 오른쪽 단추로 클릭한 다음 스마트 태그 표시를 클릭합니다. LoginView 작업 메뉴의 뷰 목록에서 LoggedInTemplate을 클릭합니다.

    이렇게 하면 로그인한 사용자에게 표시되는 내용에 대해 LoginView 컨트롤이 편집 모드로 전환됩니다.

  3. 도구 상자의 표준 그룹에서 HyperLink 컨트롤을 편집 영역으로 끌어 옵니다. HyperLink 컨트롤의 속성 창에서 Text 속성을 암호 변경으로 설정하고 href 속성을 ~/MemberPages/ChangePassword.aspx로 설정합니다.

    앞에서 만든 등록 링크와는 반대로 암호 변경 링크는 로그인한 사용자에게만 표시됩니다.

이제 암호 변경 프로세스를 테스트할 수 있습니다.

암호 변경을 테스트하려면

  1. Ctrl+F5를 눌러 웹 사이트를 실행합니다.

  2. Default.aspx 페이지에서 로그인 링크를 클릭하고 만든 사용자 중 하나로 로그인합니다.

    로그인 과정이 끝나면 로그인한 사용자 상태로 홈 페이지로 돌아갑니다.

  3. 암호 변경 링크를 클릭합니다.

  4. 암호 변경 페이지에서 이전 암호와 새 암호를 입력하고 암호 변경을 클릭합니다.

  5. 계속을 클릭합니다.

  6. 홈 페이지에서 로그아웃을 클릭합니다.

  7. 로그인 링크를 클릭합니다.

  8. 새 암호를 입력합니다.

    새 암호로 로그인됩니다.

  9. 브라우저 창을 닫습니다.

암호 복구

사용자는 암호를 잊어버릴 수도 있습니다. 따라서 암호를 잊어버린 사용자들이 웹 사이트에 다시 한 번 로그인할 수 있도록 사이트에 암호 복구 페이지를 추가할 수 있습니다. 암호 복구는 다음의 두 가지 형식으로 구현될 수 있습니다.

  • 사용자에게 본인이 선택한 암호나 사이트 설정 시 만든 암호를 보낼 수 있습니다. 사이트에서 복구 가능한 암호화를 사용하여 암호를 저장한 경우에만 이 옵션을 사용할 수 있습니다.

  • 사용자에게 새 암호를 보낼 수 있습니다. 이 암호는 앞에서 만든 암호 변경 페이지를 사용하여 변경할 수 있습니다. 웹 사이트에서 해싱과 같은 복구 불가능 암호 체계를 사용하여 암호를 저장할 경우에 이 옵션이 유용합니다.

참고:

높은 수준의 보안을 필요로 하는 사이트에서는 전자 메일을 통해 일반 텍스트로 암호를 다시 보내는 방식이 권장되지 않습니다. 보안 수준이 높은 사이트에서는 SSL(Secure Sockets Layer)과 같은 암호화를 사용하여 암호를 보내는 것이 좋습니다.

기본적으로 ASP.NET 멤버 자격 시스템은 암호를 복구할 수 없게 해싱하여 암호 보안을 설정합니다. 따라서 이 연습 부분에서는 웹 사이트에서 사용자에게 새 암호를 보냅니다.

참고:

암호 복구 기능을 제공하려면 웹 사이트에서 전자 메일 메시지를 보낼 수 있어야 합니다. 이 연습 앞부분의 "전자 메일에 대한 응용 프로그램 구성"에 설명된 것처럼 전자 메일을 보내도록 웹 사이트를 구성할 수 없는 경우 사이트에 암호 복구를 추가할 수 없습니다.

암호 복구를 추가하려면

  1. 솔루션 탐색기에서 웹 사이트의 이름을 마우스 오른쪽 단추로 클릭하고 새 항목 추가를 클릭한 후 이름이 RecoverPassword.aspx인 새 Web Form을 추가합니다.

    참고:

    이 페이지는 MemberPages 폴더가 아닌 웹 사이트의 루트에 만들어야 합니다.

  2. RecoverPassword.aspx 페이지에서 디자인 뷰로 전환한 후 새 값으로 암호 다시 설정과 같은 정적 텍스트를 입력합니다. 서식 도구 모음에서 블록 서식 드롭다운 목록을 사용하여 텍스트 서식을 제목 1로 지정합니다.

  3. 도구 상자의 로그인 그룹에서 PasswordRecovery 컨트롤을 페이지로 끌어 옵니다.

  4. 도구 상자의 표준 그룹에서 HyperLink 컨트롤을 페이지로 끌어 옵니다. HyperLink 컨트롤에 대한 속성 창에서 Text 속성을 홈으로 설정하고 href 속성을 ~/Default.aspx로 설정합니다.

  5. Default.aspx 페이지로 전환합니다.

  6. LoginView 컨트롤을 마우스 오른쪽 단추로 클릭한 다음 스마트 태그 표시를 클릭합니다. LoginView 작업 메뉴의 뷰 목록에서 AnonymousTemplate을 클릭합니다.

    이렇게 하면 로그인하지 않은 사용자에게 표시되는 내용에 대해 LoginView 컨트롤이 편집 모드로 전환됩니다.

  7. 도구 상자의 표준 그룹에서 HyperLink 컨트롤을 템플릿으로 끌어 옵니다. HyperLink 컨트롤의 속성 창에서 Text 속성을 암호를 잊으셨습니까?로 설정하고 href 속성을 ~/RecoverPassword.aspx로 설정합니다.

이제 암호 복구를 테스트할 수 있습니다.

암호 복구를 테스트하려면

  1. Ctrl+F5를 눌러 웹 사이트를 실행합니다.

  2. 기본적으로 사용자는 로그인하지 않았으므로 LoginView 컨트롤의 익명 템플릿이 표시됩니다.

  3. 암호를 잊으셨습니까? 링크를 클릭합니다.

    RecoverPassword.aspx 페이지가 나타납니다.

  4. 사용자 이름을 입력하고 전송을 클릭합니다.

    보안 질문이 표시되며 보안 대답을 입력하라는 메시지가 나타납니다.

  5. 대답을 입력하고 전송을 클릭합니다.

    올바른 대답을 입력하면 웹 사이트에서는 사용자 암호를 다시 설정하고 새 암호를 사용하여 사용자에게 전자 메일 메시지를 보냅니다.

다음 단계

이 연습에서는 사용자에게 자격 증명을 요청하고, 로그인한 사용자에게 정보를 표시하고, 사용자가 잊어버린 암호를 복구할 수 있도록 허용하고, 페이지에 대한 액세스를 제한하는 응용 프로그램을 만드는 간단하지만 완벽한 시나리오에 대해 설명했습니다. 이 연습에 설명된 기술과 컨트롤을 사용하여 보다 정교한 페이지와 응용 프로그램을 만들 수 있습니다. 예를 들어, 다음과 같은 경우입니다.

참고 항목

개념

멤버 자격 소개