다음을 통해 공유


방법: WindowsPrincipal 개체 만들기

코드가 역할 기반 확인을 반복적으로 수행해야 하는지 아니면 한 번만 수행하면 되는지 여부에 따라 두 가지 방법으로 WindowsPrincipal 개체를 만들 수 있습니다.

코드가 역할 기반 확인을 반복적으로 수행해야 하는 경우 다음 중 첫 번째 절차를 사용하면 오버헤드를 줄일 수 있습니다. 코드에서 역할 기반 확인을 한 번만 수행하는 경우에는 다음 중 두 번째 절차를 사용하여 WindowsPrincipal 개체를 만들 수 있습니다.

반복 확인을 위한 WindowsPrincipal 개체를 만들려면

  1. 정적 AppDomain.CurrentDomain 속성에서 반환된 AppDomain 개체에 대한 SetPrincipalPolicy 메서드를 호출하여 이 메서드에 새로운 정책을 나타내는 PrincipalPolicy 열거형 값을 전달합니다. 지원되는 값은 NoPrincipal, UnauthenticatedPrincipalWindowsPrincipal입니다. 다음 코드에서는 이 메서드 호출을 보여 줍니다.

    AppDomain.CurrentDomain.SetPrincipalPolicy(
        PrincipalPolicy.WindowsPrincipal);
    
    AppDomain.CurrentDomain.SetPrincipalPolicy( _
        PrincipalPolicy.WindowsPrincipal)
    
  2. 정책을 설정한 상태에서 정적 Thread.CurrentPrincipal 속성을 사용하여 현재 Windows 사용자를 캡슐화하는 보안 주체를 검색합니다. 속성 반환 형식이 IPrincipal이므로 결과를 WindowsPrincipal 형식으로 캐스팅해야 합니다. 다음 코드에서는 새로운 WindowsPrincipal 개체를 현재 스레드와 연관된 보안 주체의 값으로 초기화합니다.

    WindowsPrincipal MyPrincipal = 
        (WindowsPrincipal) Thread.CurrentPrincipal;
    
    Dim MyPrincipal As WindowsPrincipal = _
        CType(Thread.CurrentPrincipal, WindowsPrincipal) 
    
  3. Principal 개체를 만들고 나면 몇 가지 메서드 중 하나를 사용하여 이를 확인할 수 있습니다. 자세한 내용은 역할 기반 보안 검사를 참조하십시오.

단일 확인을 위한 WindowsPrincipal 개체를 만들려면

  1. 현재 Windows 계정을 쿼리하고 이 계정에 대한 정보를 새로 만든 ID 개체에 삽입하는 정적 WindowsIdentity.GetCurrent 메서드를 호출하여 새 WindowsIdentity 개체를 초기화합니다. 다음 코드에서는 새 WindowsIdentity 개체를 만들고 이 개체를 현재 인증된 사용자로 초기화합니다.

    WindowsIdentity MyIdentity = WindowsIdentity.GetCurrent();
    
    Dim MyIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
    
  2. WindowsPrincipal 개체를 만들고 이 개체에 이전 단계에서 만든 WindowsIdentity 개체의 값을 전달합니다.

    WindowsPrincipal MyPrincipal = new WindowsPrincipal(MyIdentity);
    
    Dim MyPrincipal As New WindowsPrincipal(MyIdentity)
    
  3. Principal 개체를 만들고 나면 몇 가지 메서드 중 하나를 사용하여 이를 확인할 수 있습니다. 자세한 내용은 역할 기반 보안 검사를 참조하십시오.

참고 항목

개념

Principal 개체 및 Identity 개체