다음을 통해 공유


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

클라이언트 응용 프로그램 서비스를 이용하면 Windows Forms 및 WPF(Windows Presentation Foundation) 응용 프로그램에서 Microsoft Ajax 로그인, 역할 및 프로필 서비스에 간편하게 액세스할 수 있습니다. Microsoft Ajax 응용 프로그램 서비스는 Visual Studio 2008 및 .NET Framework 버전 3.5의 Microsoft ASP.NET 2.0 AJAX Extensions에 포함되어 있습니다. 이러한 서비스를 사용하면 여러 웹 및 Windows 기반 응용 프로그램에서 단일 서버의 사용자 정보 및 사용자 관리 기능을 공유할 수 있습니다.

클라이언트 응용 프로그램 서비스에는 웹 서비스 확장성 모델에 연결되어 다음과 같은 Windows 기반 응용 프로그램 기능을 활성화하는 클라이언트 서비스 공급자가 포함됩니다.

  • 간단한 클라이언트 구성. Visual Studio 프로젝트 디자이너를 사용하거나 프로젝트의 App.config 파일에 클라이언트 서비스 공급자를 지정하는 방식으로 로그인, 역할 및 프로파일 서비스를 활성화하고 구성할 수 있습니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스 구성을 참조하십시오.

  • 단순한 프로그래밍. 클라이언트 응용 프로그램 서비스를 활성화하고 구성한 후에는 기존 .NET Framework 2.0 멤버 자격, 역할 및 응용 프로그램 설정 클래스를 통해 서비스 공급자에 간접적으로 액세스할 수 있습니다. 클라이언트 응용 프로그램 서비스를 구현하는 .NET Framework 버전 3.5 클래스에 직접 액세스할 수도 있습니다. 그러나 대부분의 경우 직접 액세스는 필요하지 않습니다. 클라이언트 응용 프로그램 서비스 클래스에 대한 자세한 내용은 이 항목의 "클라이언트 응용 프로그램 서비스 클래스" 단원을 참조하십시오.

  • 오프라인 지원. Windows 기반 응용 프로그램은 이따금씩 연결되는 환경에서 작동해야 하는 경우가 많습니다. 응용 프로그램이 온라인 상태이면 클라이언트 서비스 공급자는 서버에서 검색된 값을 캐시하여 응용 프로그램이 오프라인 상태일 때 사용합니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스에서 오프라인으로 작업을 참조하십시오.

  • Visual Studio 응용 프로그램 설정 디자이너와의 통합. Visual Studio에서 프로젝트에 설정을 추가하는 경우 클라이언트 설정 서비스 공급자를 통해 액세스할 설정을 지정할 수 있습니다.

다음 단원에서는 이러한 기능에 대해 자세히 설명합니다. Microsoft Ajax 응용 프로그램 서비스에 대한 자세한 내용은 ASP.NET 응용 프로그램 서비스 개요를 참조하십시오.

인증

클라이언트 응용 프로그램 서비스를 사용하여 기존 Microsoft Ajax 인증 서비스를 통해 사용자에 대한 유효성을 검사할 수 있습니다. 사용자 유효성 검사에는 Windows 인증이나 폼 인증을 사용할 수 있습니다. Windows 인증에서는 사용자가 컴퓨터나 도메인에 로그인할 때 운영 체제가 제공하는 사용자 ID를 사용합니다. 일반적으로 Windows 인증은 회사 인트라넷에 배포된 응용 프로그램에 사용합니다. 폼 인증에서는 응용 프로그램에 로그인 컨트롤을 포함하고 가져온 자격 증명을 인증 공급자에 전달해야 합니다. 일반적으로 폼 인증은 인터넷에 배포된 응용 프로그램에 사용합니다.

사용자에 대한 유효성을 검사하려면 static Membership.ValidateUser 메서드를 호출합니다. 이 메서드는 응용 프로그램에 대해 구성된 클라이언트 서비스 공급자에 액세스하고 사용자가 유효한지 여부를 나타내는 Boolean 값을 반환합니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스에서 사용자 로그인 구현을 참조하십시오.

Windows 인증을 사용하는 경우에는 빈 문자열이나 null을 ValidateUser 메서드의 매개 변수로 전달해야 합니다. Windows 인증을 사용하는 경우 이 메서드를 호출하면 항상 true가 반환됩니다.

폼 인증을 사용하는 경우 ValidateUser 메서드는 원격 서비스에서 사용자를 인증했는지 여부를 나타내는 값을 반환합니다. 유효성 검사에 성공하면 인증 쿠키가 로컬 하드 디스크에 저장됩니다. 이 쿠키는 역할 및 설정 서비스에 액세스할 때 유효성 검사를 확인하는 데 사용됩니다.

폼 인증을 사용하는 경우에는 사용자 이름과 암호를 ValidateUser메서드에 전달할 수 있습니다. 또한 빈 문자열이나 null을 매개 변수로 전달하여 자격 증명 공급자를 사용할 수도 있습니다. 자격 증명 공급자는 응용 프로그램 구성에 제공하고 지정하는 클래스입니다. 자격 증명 공급자 클래스는 GetCredentials라는 단일 메서드가 들어 있는 IClientFormsAuthenticationCredentialsProvider 인터페이스를 구현해야 합니다. 자격 증명 공급자를 사용하면 여러 응용 프로그램에서 하나의 로그인 대화 상자를 공유할 수 있습니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스 구성을 참조하십시오.

응용 프로그램에서 폼 인증에 자격 증명 공급자를 사용하도록 구성하려면 빈 문자열이나 null을 ValidateUser 메서드의 매개 변수로 전달해야 합니다. 그러면 서비스 공급자가 IClientFormsAuthenticationCredentialsProvider.GetCredentials 메서드 구현을 호출합니다. 일반적으로 이 메서드는 대화 상자를 표시하고 채워진 ClientFormsAuthenticationCredentials 개체를 반환하도록 구현합니다.

인증에 대한 자세한 내용은 ASP.NET 인증을 참조하십시오. Microsoft Ajax 인증 서비스에 대한 자세한 내용은 Microsoft Ajax에서 폼 인증 사용을 참조하십시오.

역할

클라이언트 응용 프로그램 서비스를 사용하여 기존 Microsoft Ajax 역할 서비스에서 역할 정보를 검색할 수 있습니다. 현재 인증된 사용자가 특정 역할에 있는지 여부를 확인하려면 static Thread.CurrentPrincipal 속성에서 검색한 IPrincipal 참조의 IsInRole 메서드를 호출합니다. IsInRole 메서드를 역할 이름을 매개 변수로 사용하고 현재 사용자가 지정된 역할에 있는지 여부를 나타내는 Boolean 값을 반환합니다. 사용자가 인증되지 않았거나 지정된 역할에 없는 경우 이 메서드는 false를 반환합니다.

자세한 내용은 방법: 클라이언트 응용 프로그램 서비스에서 사용자 역할 액세스를 참조하십시오. Microsoft Ajax 역할 서비스 설정 방법에 대한 자세한 내용은 Microsoft Ajax에서 역할 정보 사용을 참조하십시오.

설정

클라이언트 응용 프로그램 서비스를 사용하여 기존 Microsoft Ajax 프로파일 서비스에서 사용자 응용 프로그램 설정을 검색할 수 있습니다. 클라이언트 응용 프로그램 서비스의 웹 설정 기능에는 .NET Framework 2.0에 제공되는 응용 프로그램 설정 기능이 통합되어 있습니다. 웹 설정을 검색하려면 먼저 Visual Studio 프로젝트 디자이너의 설정 탭을 사용하여 프로젝트에 대해 Settings 클래스(C#에서는 Properties.Settings.Default, Visual Basic에서는 My.Settings로 각각 액세스)를 생성합니다. 설정 탭에서는 웹 설정 로드 단추를 사용하여 웹 설정을 검색하고 이를 생성된 Settings 클래스에 추가할 수 있습니다. 모든 인증된 사용자 또는 모든 익명 사용자가 사용하도록 설정된 웹 설정을 사용할 수 있습니다.

자세한 내용은 방법: 클라이언트 응용 프로그램 서비스에서 사용자 설정 액세스를 참조하십시오. 응용 프로그램 설정에 대한 자세한 내용은 응용 프로그램 설정 개요을 참조하십시오. Visual Studio에서 설정 클래스를 생성하는 대신 고유한 설정 클래스를 구현하는 방법에 대한 자세한 내용은 방법: 응용 프로그램 설정 만들기를 참조하십시오. Microsoft Ajax 프로파일 서비스 설정 방법에 대한 자세한 내용은 Microsoft Ajax에서 프로필 정보 사용을 참조하십시오.

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

다음 표에서는 클라이언트 응용 프로그램 서비스 기능을 구현하는 클래스에 대해 설명합니다.

기본 인증, 역할 및 설정 기능만 사용하는 응용 프로그램은 이러한 클래스에 직접 액세스하는 대신 응용 프로그램 구성과 이전 단원에 설명된 API를 사용하여 클라이언트 응용 프로그램 서비스 공급자에 간접적으로 액세스합니다. 사용자 로그아웃 및 오프라인 기능 같은 추가 기능을 구현하려면 이러한 클래스에 간접적으로 액세스합니다.

참고

모든 클라이언트 응용 프로그램 서비스 API는 동기적입니다. 클라이언트 응용 프로그램 서비스는 비동기 동작을 직접 지원하지 않습니다.

클라이언트 응용 프로그램 서비스 공급자는 표준 .NET Framework 2.0 형식을 구현하거나 확장하지만 이러한 유형에 의해 정의된 모든 멤버 및 기능을 구현하지는 않습니다. 예를 들어 새 사용자를 만들고 역할 멤버 자격을 관리하기 위한 사용자 관리 응용 프로그램을 구현할 때는 클라이언트 응용 프로그램 서비스 공급자를 사용할 수 없습니다. 이 기능을 구현하려면 현재 웹 응용 프로그램 및 서버 쪽 코드를 사용해야 합니다. 구현되지 않는 멤버를 확인하려면 이 표의 링크에서 액세스할 수 있는 참조 설명서를 참조하십시오.

클래스

설명

ClientFormsIdentity

이 클래스는 폼 인증에 필요한 사용자 ID 및 인증 쿠키를 관리합니다.

이 클래스에 직접 액세스하는 주된 이유는 사용자에 대한 유효성을 자동으로 다시 검사(예: 오프라인에서 온라인 모드로 전환되는 경우)하는 RevalidateUser 메서드를 호출하기 위해서입니다.

폼 인증을 사용하여 사용자를 인증한 후에는 static Thread.CurrentPrincipal 속성을 통해 검색된 IPrincipal 참조의 Identity 속성을 통해 이 클래스의 인스턴스를 검색할 수 있습니다.

ClientRolePrincipal

이 클래스는 사용자 역할을 관리합니다.

이 클래스에는 간접적으로 액세스할 수 없는 멤버는 포함되어 있지 않습니다. 그러나 사용자가 인증된 후에는 static Thread.CurrentPrincipal 속성을 통해 이 클래스의 인스턴스에 액세스할 수 있습니다.

ConnectivityStatus

이 클래스에서는 응용 프로그램을 오프라인 모드로 전환하는 데 사용하는 static IsOffline 속성을 제공합니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스에서 오프라인으로 작업을 참조하십시오.

ClientFormsAuthenticationCredentials

이 클래스는 사용자 자격 증명을 나타냅니다.

이 클래스는 IClientFormsAuthenticationCredentialsProvider 인터페이스를 구현할 때 GetCredentials 메서드의 반환 값 유형으로만 사용합니다.

ClientFormsAuthenticationMembershipProvider

이 클래스는 폼 인증의 원격 인증 서비스에 대한 액세스를 관리합니다.

이 클래스에 직접 액세스하는 주된 이유는 해당 LogoutUserValidated 멤버를 사용하기 위해서입니다. 이러한 멤버는 기본 MembershipProvider 클래스에서 구현되지 않습니다. 또한 ServiceUri 속성을 사용하여 서비스 위치를 프로그래밍 방식으로 설정할 수도 있습니다.

static Membership.Provider 속성을 통해 이 클래스의 인스턴스를 검색할 수 있습니다.

ClientWindowsAuthenticationMembershipProvider

이 클래스는 Windows 인증을 관리합니다.

이 클래스에 직접 액세스하는 주된 이유는 해당 Logout 메서드를 호출하기 위해서입니다. 사용자는 로그아웃한 후에도 Windows에 대해 계속 인증되지만 원격 응용 프로그램 서비스에는 액세스할 수 없습니다.

static Membership.Provider 속성을 통해 이 클래스의 인스턴스를 검색할 수 있습니다.

ClientRoleProvider

이 클래스는 원격 역할 서비스에 대한 액세스를 관리합니다.

이 클래스에 액세스하는 주된 이유는 해당 ResetCache 메서드를 호출하기 위해서입니다. 이는 응용 프로그램이 영이 아닌 역할 서비스 캐시 제한 시간 값을 사용하도록 구성되어 있는 경우에 유용할 수 있습니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스 구성을 참조하십시오. 또한 ServiceUri 속성을 사용하여 서비스 위치를 프로그래밍 방식으로 설정할 수도 있습니다.

static Roles.Provider 속성을 통해 이 클래스의 인스턴스를 검색할 수 있습니다.

ClientSettingsProvider

이 클래스는 원격 웹 설정 서비스에 대한 액세스를 관리합니다.

이 클래스에 액세스하는 주된 이유는 SettingsSaved 이벤트를 처리하기 위해서입니다. 또한 ServiceUri 속성을 사용하여 서비스 위치를 프로그래밍 방식으로 설정할 수도 있습니다.

IClientFormsAuthenticationCredentialsProvider

이 인터페이스는 이 항목의 인증 단원 앞부분에서 설명한 것처럼 응용 프로그램에서 유효성 검사를 위해 사용자 자격 증명을 가져오기 위한 간접적인 방법을 제공합니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스 구성을 참조하십시오.

SettingsSavedEventArgs

이 클래스에서는 ClientSettingsProvider.SettingsSaved 이벤트 처리기 내에서 사용할 FailedSettingsList 속성을 제공합니다.

UserValidatedEventArgs

이 클래스에서는 UserValidated 이벤트 처리기 내에서 사용할 UserName 속성을 제공합니다.

참고 항목

작업

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

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

방법: 클라이언트 응용 프로그램 서비스에서 사용자 역할 액세스

방법: 클라이언트 응용 프로그램 서비스에서 사용자 설정 액세스

방법: 클라이언트 응용 프로그램 서비스에서 오프라인으로 작업

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

개념

응용 프로그램 설정 개요

ASP.NET 응용 프로그램 서비스 개요

Microsoft Ajax에서 폼 인증 사용

Microsoft Ajax에서 역할 정보 사용

Microsoft Ajax에서 프로필 정보 사용

기타 리소스

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

응용 프로그램 설정 관리

ASP.NET 인증

역할을 사용하여 권한 부여 관리

SQL Server용 응용 프로그램 서비스 데이터베이스 만들기 및 구성