방법: 클라이언트 응용 프로그램 서비스에서 사용자 로그인 구현
클라이언트 응용 프로그램 서비스를 사용하여 기존 Microsoft Ajax 프로파일 서비스를 통해 사용자에 대한 유효성을 검사할 수 있습니다. Microsoft Ajax 프로파일 서비스 설정 방법에 대한 자세한 내용은 Microsoft Ajax에서 폼 인증 사용을 참조하십시오.
다음 절차에서는 응용 프로그램이 클라이언트 인증 서비스 공급자 중 하나를 사용하도록 구성된 경우 인증 서비스를 통해 사용자에 대한 유효성을 검사하는 방법에 대해 설명합니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스 구성을 참조하십시오.
일반적으로 모든 유효성 검사는 static Membership.ValidateUser 메서드를 통해 수행합니다. 이 메서드는 구성된 인증 공급자를 통해 인증 서비스와의 상호 작용을 관리합니다. 자세한 내용은 클라이언트 응용 프로그램 서비스 개요를 참조하십시오.
폼 인증 프로시저에서는 실행 중인 Microsoft Ajax 인증 서비스에 액세스해야 합니다. 클라이언트 응용 프로그램 서비스 기능에 대한 포괄적인 테스트 관련 지침을 보려면 연습: 클라이언트 응용 프로그램 서비스 사용을 참조하십시오.
멤버 자격 증명 공급자를 사용하여 폼 인증으로 사용자를 인증하려면
IClientFormsAuthenticationCredentialsProvider 인터페이스를 구현합니다. 다음 코드 예제에서는 System.Windows.Forms.Form에서 파생된 로그인 대화 상자 클래스에 구현된 IClientFormsAuthenticationCredentialsProvider.GetCredentials를 보여 줍니다. 이 대화 상자에는 사용자 이름 및 암호를 입력하는 텍스트 상자와 "암호 저장" 확인란이 포함되어 있습니다. 클라이언트 인증 공급자가 GetCredentials 메서드를 호출하면 폼이 표시됩니다. 사용자가 로그인 대화 상자에 정보를 채우고 확인을 클릭하면 지정된 값이 새 ClientFormsAuthenticationCredentials 개체에 반환됩니다.
Public Function GetCredentials() As _ ClientFormsAuthenticationCredentials Implements _ IClientFormsAuthenticationCredentialsProvider.GetCredentials If Me.ShowDialog() = DialogResult.OK Then Return New ClientFormsAuthenticationCredentials( _ UsernameTextBox.Text, PasswordTextBox.Text, _ rememberMeCheckBox.Checked) Else Return Nothing End If End Function
public ClientFormsAuthenticationCredentials GetCredentials() { if (this.ShowDialog() == DialogResult.OK) { return new ClientFormsAuthenticationCredentials( usernameTextBox.Text, passwordTextBox.Text, rememberMeCheckBox.Checked); } else { return null; } }
static Membership.ValidateUser 메서드를 호출하고 빈 문자열을 매개 변수 값으로 전달합니다. 빈 문자열을 지정하는 경우 이 메서드는 응용 프로그램에 대해 구성된 자격 증명 공급자에 대한 GetCredentials 메서드를 내부적으로 호출합니다. 다음 코드 예제에서는 이 메서드를 호출하여 전체 Windows Forms 응용 프로그램에 대한 액세스를 제한합니다. 이 코드는 Form.Load 처리기에 추가할 수 있습니다.
If Not System.Web.Security.Membership.ValidateUser( _ String.Empty, String.Empty) Then MessageBox.Show("Unable to authenticate.", "Not logged in", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Application.Exit() End If
if (!System.Web.Security.Membership.ValidateUser( String.Empty, String.Empty)) { MessageBox.Show("Unable to authenticate.", "Not logged in", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); }
멤버 자격 증명 공급자를 사용하지 않고 폼 인증으로 사용자를 인증하려면
static Membership.ValidateUser 메서드를 호출하고 사용자로부터 검색한 사용자 이름 및 암호 값을 전달합니다.
If Not System.Web.Security.Membership.ValidateUser( _ usernameTextBox.Text, passwordTextBox.Text) Then MessageBox.Show("Unable to authenticate.", "Not logged in", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Application.Exit() End If
if (!System.Web.Security.Membership.ValidateUser( usernameTextBox.Text, passwordTextBox.Text)) { MessageBox.Show("Unable to authenticate.", "Not logged in", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); }
Windows 인증을 사용하여 사용자를 인증하려면
static Membership.ValidateUser 메서드를 호출하고 매개 변수로 빈 문자열을 전달합니다. 이 메서드는 항상 true를 반환하며 쿠키를 Windows ID가 들어 있는 사용자의 쿠키 캐시에 추가합니다.
System.Web.Security.Membership.ValidateUser( _ String.Empty, String.Empty)
System.Web.Security.Membership.ValidateUser( String.Empty, String.Empty);
강력한 프로그래밍
이 항목의 예제 코드에서는 Windows 클라이언트 응용 프로그램에서 인증을 가장 간단하게 사용하는 방법을 보여 줍니다. 하지만 클라이언트 응용 프로그램 서비스 및 폼 인증을 사용하여 static Membership.ValidateUser 메서드를 호출하면 코드에서 WebException을 throw할 수 있습니다. 이는 인증 서비스를 사용할 수 없음을 나타냅니다. 이 예외를 처리하는 방법에 대한 예제를 보려면 연습: 클라이언트 응용 프로그램 서비스 사용을 참조하십시오.