방법: 클라이언트 응용 프로그램 서비스에서 사용자 로그인 구현

클라이언트 응용 프로그램 서비스를 사용하여 기존 Microsoft Ajax 프로파일 서비스를 통해 사용자에 대한 유효성을 검사할 수 있습니다. Microsoft Ajax 프로파일 서비스 설정 방법에 대한 자세한 내용은 Microsoft Ajax에서 폼 인증 사용을 참조하십시오.

다음 절차에서는 응용 프로그램이 클라이언트 인증 서비스 공급자 중 하나를 사용하도록 구성된 경우 인증 서비스를 통해 사용자에 대한 유효성을 검사하는 방법에 대해 설명합니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스 구성을 참조하십시오.

일반적으로 모든 유효성 검사는 static Membership.ValidateUser 메서드를 통해 수행합니다. 이 메서드는 구성된 인증 공급자를 통해 인증 서비스와의 상호 작용을 관리합니다. 자세한 내용은 클라이언트 응용 프로그램 서비스 개요를 참조하십시오.

폼 인증 프로시저에서는 실행 중인 Microsoft Ajax 인증 서비스에 액세스해야 합니다. 클라이언트 응용 프로그램 서비스 기능에 대한 포괄적인 테스트 관련 지침을 보려면 연습: 클라이언트 응용 프로그램 서비스 사용을 참조하십시오.

멤버 자격 증명 공급자를 사용하여 폼 인증으로 사용자를 인증하려면

  1. 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;
        }
    }
    
  2. 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할 수 있습니다. 이는 인증 서비스를 사용할 수 없음을 나타냅니다. 이 예외를 처리하는 방법에 대한 예제를 보려면 연습: 클라이언트 응용 프로그램 서비스 사용을 참조하십시오.

참고 항목

작업

방법: 클라이언트 응용 프로그램 서비스 구성

연습: 클라이언트 응용 프로그램 서비스 사용

개념

클라이언트 응용 프로그램 서비스 개요

Microsoft Ajax에서 폼 인증 사용

기타 리소스

클라이언트 응용 프로그램 서비스