다음을 통해 공유


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

클라이언트 응용 프로그램 서비스를 사용하여 기존 Microsoft Ajax 역할 서비스에서 역할 정보를 검색할 수 있습니다. 역할 서비스 설정 방법에 대한 자세한 내용은 Microsoft Ajax에서 역할 정보 사용을 참조하십시오.

다음 절차에서는 역할 서비스를 사용하도록 구성된 Windows Forms 응용 프로그램에서 인증된 사용자에 대해 사용자 역할 정보에 액세스하는 방법을 설명합니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스 구성을 참조하십시오. 이 절차에서는 실행 중인 Microsoft Ajax 역할 서비스에 액세스해야 합니다. 클라이언트 응용 프로그램 서비스 기능에 대한 포괄적인 테스트 관련 지침을 보려면 연습: 클라이언트 응용 프로그램 서비스 사용을 참조하십시오.

사용자가 특정 역할에 있는지 여부를 확인하려면

  • static Thread.CurrentPrincipal 속성에서 검색한 IPrincipal 참조의 IsInRole 메서드를 호출합니다. 이 메서드는 다음 예제에서처럼 특수 기능에 대한 액세스를 제공하는 데 사용할 수 있는 Boolean 값을 반환합니다. 사용자가 인증되지 않았거나 지정된 역할에 없는 경우 이 메서드는 false를 반환합니다.

    IsInRole 메서드는 ClientRoleProvider 클래스를 통해 원격 역할 서비스에 내부적으로 액세스합니다. ClientRoleProvider 클래스에는 직접 액세스할 수도 있지만 일반적으로는 다음 코드에서처럼 간접적으로 액세스합니다. 자세한 내용은 클라이언트 응용 프로그램 서비스 개요를 참조하십시오.

    다음 코드 예제에서는 응용 프로그램에 managerOnlyButton이라는 Button이 있는 것으로 가정합니다.

    If System.Threading.Thread.CurrentPrincipal.IsInRole("manager") Then
    
        managerOnlyButton.Visible = True
    
    End If
    
    if (System.Threading.Thread.CurrentPrincipal.IsInRole("manager"))
    {
        managerOnlyButton.Visible = true;
    }
    

강력한 프로그래밍

이 항목의 예제 코드에서는 Windows 클라이언트 응용 프로그램에서 역할 서비스를 가장 간단하게 사용하는 방법을 보여 줍니다. 하지만 클라이언트 응용 프로그램 서비스를 통해 사용자 역할에 액세스하면 서비스를 사용할 수 없는 경우 코드에서 WebException을 throw할 수 있습니다. 이 경우 WebException을 처리하는 방법에 대한 예제를 보려면 연습: 클라이언트 응용 프로그램 서비스 사용을 참조하십시오.

또한 사용자 로그인이 만료되는 경우 IsInRole 메서드는 항상 false를 반환합니다. 하지만 응용 프로그램에서 IsInRole 메서드를 인증 직후 한 번 호출하는 경우에는 예외입니다. 응용 프로그램에서 다른 때 사용자 역할을 검색해야 하는 경우에는 로그인이 만료된 사용자의 유효성을 다시 검사하는 코드를 추가해야 할 수 있습니다. 역할에 유효한 모든 사용자가 할당되면 ClientRoleProvider.GetRolesForUser 메서드를 호출하여 로그인이 만료되었는지 여부를 확인할 수 있습니다. 역할이 반환되지 않으면 로그인이 만료된 것입니다. 이 기능의 예제를 보려면 GetRolesForUser 메서드를 참조하십시오. 이 기능은 응용 프로그램 구성에서 서버 쿠키가 만료될 때마다 다시 사용자 로그온을 선택한 경우에만 필요합니다. 자세한 내용은 방법: 클라이언트 응용 프로그램 서비스 구성을 참조하십시오.

참고 항목

작업

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

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

참조

ClientRoleProvider

Thread.CurrentPrincipal

IPrincipal.IsInRole

개념

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

Microsoft Ajax에서 역할 정보 사용

기타 리소스

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