ASP.NET 폼 인증 개요
업데이트: 2007년 11월
폼 인증을 사용하면 직접 작성한 코드로 사용자를 인증한 다음 인증 토큰을 쿠키나 페이지 URL에 유지할 수 있습니다. 폼 인증은 FormsAuthenticationModule 클래스를 통해 ASP.NET 페이지 수명 주기에 참여합니다. FormsAuthentication 클래스를 사용하여 폼 인증 정보 및 기능에 액세스할 수 있습니다.
폼 인증을 사용하려면 사용자로부터 자격 증명을 수집하고 이러한 자격 증명을 인증할 코드를 포함하는 로그인 페이지를 만듭니다. 일반적으로 인증이 필요한 페이지와 같은 보호된 리소스에 사용자가 액세스하려고 할 때 응용 프로그램이 요청을 로그인 페이지로 리디렉션하도록 구성합니다. 사용자의 자격 증명이 유효하면 FormsAuthentication 클래스의 메서드를 호출하여 요청을 적절한 인증 티켓(쿠키)과 함께 원래 요청한 리소스로 다시 리디렉션할 수 있습니다. 리디렉션을 원하지 않는 경우에는 폼 인증 쿠키를 가져오거나 설정만 할 수 있습니다. 이후 요청에서 사용자의 브라우저에서는 요청과 함께 인증 쿠키를 전달하고 로그인 페이지를 건너뜁니다.
authentication 구성 요소를 사용하여 폼 인증을 구성합니다. 간단한 예로 로그인 페이지가 있습니다. 구성 파일에서 인증되지 않은 요청을 로그인 페이지로 리디렉션하도록 URL을 지정합니다. 그런 다음 유효한 자격 증명을 Web.config 파일이나 별도의 파일에 정의합니다. 다음 예제에서는 Authenticate 메서드에 대한 로그인 페이지 및 인증 자격 증명을 지정하는 구성 파일 섹션을 보여 줍니다. 암호는 HashPasswordForStoringInConfigFile 메서드를 사용하여 암호화되었습니다.
<authentication mode="Forms">
<forms name="SavingsPlan" loginUrl="/Login.aspx">
<credentials passwordFormat="SHA1">
<user name="Kim"
password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
<user name="John"
password="BA56E5E0366D003E98EA1C7F04ABF8FCB3753889"/>
</credentials>
</forms>
</authentication>
인증을 마친 후에 FormsAuthenticationModule 모듈은 User 속성의 값을 인증된 사용자에 대한 참조로 설정합니다. 다음 코드 예제에서는 폼 인증된 사용자의 ID를 프로그래밍 방식으로 읽는 방법을 보여 줍니다.
Dim authUser2 As String = User.Identity.Name
String authUser2 = User.Identity.Name;
폼 인증, ASP.NET 멤버 자격 및 Login 컨트롤
ASP.NET 멤버 자격 및 ASP.NET Login 컨트롤을 사용하면 간단한 방법으로 폼 인증 작업을 수행할 수 있습니다. ASP.NET 멤버 자격은 사용자 정보를 저장 및 관리할 수 있도록 해주고 사용자를 인증할 수 있는 메서드를 포함합니다. ASP.NET Login 컨트롤은 ASP.NET 멤버 자격과 함께 사용됩니다. 이 컨트롤은 논리를 캡슐화하여 사용자의 자격 증명을 확인하는 메시지를 표시하고, 사용자의 유효성을 검사하고, 암호를 복구하거나 바꾸는 등의 작업을 수행합니다. 실제로 ASP.NET 멤버 자격 및 ASP.NET Login 컨트롤은 폼 인증을 통해 추상화 계층을 제공합니다. 이 기능은 폼 인증을 사용하기 위해 일반적으로 수행해야 하는 작업을 모두 또는 대부분 대체합니다. 자세한 내용은 멤버 자격을 사용하여 사용자 관리 및 ASP.NET Login 컨트롤 개요를 참조하십시오.
폼 인증 및 인증 서비스
ASP.NET 인증 서비스를 사용하여 WCF(Windows Communication Framework) 서비스로 폼 인증에 액세스할 수도 있습니다. 인증 서비스는 사용자가 SOAP 형식으로 메시지를 보내고 사용할 수 있는 모든 응용 프로그램에서 폼 인증을 사용할 수 있도록 합니다. 인증 서비스는 사용자 자격 증명을 받아들이고 폼 인증 쿠키를 반환합니다.
예를 들어 .NET Framework를 사용하여 개발하지 않은 응용 프로그램에서 사용자를 로그인할 수 있습니다. 자세한 내용은 Windows Communication Foundation 인증 서비스 개요를 참조하십시오.