다음을 통해 공유


WindowsPrincipal 클래스

정의

코드에서 Windows 사용자의 Windows 그룹 멤버 자격을 확인할 수 있습니다.

public ref class WindowsPrincipal : System::Security::Claims::ClaimsPrincipal
public ref class WindowsPrincipal : System::Security::Principal::IPrincipal
public class WindowsPrincipal : System.Security.Claims.ClaimsPrincipal
[System.Serializable]
public class WindowsPrincipal : System.Security.Principal.IPrincipal
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class WindowsPrincipal : System.Security.Principal.IPrincipal
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class WindowsPrincipal : System.Security.Claims.ClaimsPrincipal
type WindowsPrincipal = class
    inherit ClaimsPrincipal
[<System.Serializable>]
type WindowsPrincipal = class
    interface IPrincipal
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type WindowsPrincipal = class
    interface IPrincipal
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type WindowsPrincipal = class
    inherit ClaimsPrincipal
Public Class WindowsPrincipal
Inherits ClaimsPrincipal
Public Class WindowsPrincipal
Implements IPrincipal
상속
WindowsPrincipal
상속
WindowsPrincipal
특성
구현

예제

다음 예제에서는 메서드 오버로드를 IsInRole 사용하는 방법을 보여 줍니다. WindowsBuiltInRole 열거형은 기본 제공 역할을 식별하는 RID(상대 식별자)의 원본으로 사용됩니다. RID는 현재 보안 주체의 역할을 결정하는 데 사용됩니다.

public:
   static void DemonstrateWindowsBuiltInRoleEnum()
   {
      AppDomain^ myDomain = Thread::GetDomain();

      myDomain->SetPrincipalPolicy( PrincipalPolicy::WindowsPrincipal );
      WindowsPrincipal^ myPrincipal = dynamic_cast<WindowsPrincipal^>(Thread::CurrentPrincipal);

      Console::WriteLine( "{0} belongs to: ", myPrincipal->Identity->Name );

      Array^ wbirFields = Enum::GetValues( WindowsBuiltInRole::typeid );

      for each ( Object^ roleName in wbirFields )
      {
         try
         {
            Console::WriteLine( "{0}? {1}.", roleName,
               myPrincipal->IsInRole(  *dynamic_cast<WindowsBuiltInRole^>(roleName) ) );
         }
         catch ( Exception^ ) 
         {
            Console::WriteLine( "{0}: Could not obtain role for this RID.",
               roleName );
         }
      }
   }
using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;

class SecurityPrincipalDemo
{
    public static void DemonstrateWindowsBuiltInRoleEnum()
    {
        AppDomain myDomain = Thread.GetDomain();

        myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
        WindowsPrincipal myPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal;
        Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString());
        Array wbirFields = Enum.GetValues(typeof(WindowsBuiltInRole));
        foreach (object roleName in wbirFields)
        {
            try
            {
                // Cast the role name to a RID represented by the WindowsBuildInRole value.
                Console.WriteLine("{0}? {1}.", roleName,
                    myPrincipal.IsInRole((WindowsBuiltInRole)roleName));
                Console.WriteLine("The RID for this role is: " + ((int)roleName).ToString());
            }
            catch (Exception)
            {
                Console.WriteLine("{0}: Could not obtain role for this RID.",
                    roleName);
            }
        }
        // Get the role using the string value of the role.
        Console.WriteLine("{0}? {1}.", "Administrators",
            myPrincipal.IsInRole("BUILTIN\\" + "Administrators"));
        Console.WriteLine("{0}? {1}.", "Users",
            myPrincipal.IsInRole("BUILTIN\\" + "Users"));
        // Get the role using the WindowsBuiltInRole enumeration value.
        Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator,
           myPrincipal.IsInRole(WindowsBuiltInRole.Administrator));
        // Get the role using the WellKnownSidType.
        SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
        Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid  {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid));
    }

    public static void Main()
    {
        DemonstrateWindowsBuiltInRoleEnum();
    }
}
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal

Class SecurityPrincipalDemo

    Public Shared Sub DemonstrateWindowsBuiltInRoleEnum()
        Dim myDomain As AppDomain = Thread.GetDomain()

        myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
        Dim myPrincipal As WindowsPrincipal = CType(Thread.CurrentPrincipal, WindowsPrincipal)
        Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString())
        Dim wbirFields As Array = [Enum].GetValues(GetType(WindowsBuiltInRole))
        Dim roleName As Object
        For Each roleName In wbirFields
            Try
                ' Cast the role name to a RID represented by the WindowsBuildInRole value.
                Console.WriteLine("{0}? {1}.", roleName, myPrincipal.IsInRole(CType(roleName, WindowsBuiltInRole)))
                Console.WriteLine("The RID for this role is: " + Fix(roleName).ToString())

            Catch
                Console.WriteLine("{0}: Could not obtain role for this RID.", roleName)
            End Try
        Next roleName
        ' Get the role using the string value of the role.
        Console.WriteLine("{0}? {1}.", "Administrators", myPrincipal.IsInRole("BUILTIN\" + "Administrators"))
        Console.WriteLine("{0}? {1}.", "Users", myPrincipal.IsInRole("BUILTIN\" + "Users"))
        ' Get the role using the WindowsBuiltInRole enumeration value.
        Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator, myPrincipal.IsInRole(WindowsBuiltInRole.Administrator))
        ' Get the role using the WellKnownSidType.
        Dim sid As New SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, Nothing)
        Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid  {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid))

    End Sub

    Public Shared Sub Main()
        DemonstrateWindowsBuiltInRoleEnum()

    End Sub
End Class

설명

클래스는 WindowsPrincipal 주로 Windows 사용자의 역할을 확인하는 데 사용됩니다. WindowsPrincipal.IsInRole 메서드 오버로드를 사용하면 다른 역할 컨텍스트를 사용하여 사용자 역할을 확인할 수 있습니다.

생성자

WindowsPrincipal(WindowsIdentity)

지정된 WindowsIdentity 개체를 사용하여 WindowsPrincipal 클래스의 새 인스턴스를 초기화합니다.

속성

Claims

이 클레임 보안 주체와 연결된 모든 클레임 ID의 모든 클레임을 포함하는 컬렉션을 가져옵니다.

(다음에서 상속됨 ClaimsPrincipal)
CustomSerializationData

파생된 형식에서 제공하는 추가 데이터를 포함합니다. 일반적으로 WriteTo(BinaryWriter, Byte[])를 호출할 때 설정합니다.

(다음에서 상속됨 ClaimsPrincipal)
DeviceClaims

이 보안 주체의 모든 Windows 디바이스 클레임을 가져옵니다.

Identities

이 클레임 보안 주체와 연결된 모든 클레임 ID를 포함하는 컬렉션을 가져옵니다.

(다음에서 상속됨 ClaimsPrincipal)
Identity

현재 보안 주체(principal)의 ID를 가져옵니다.

UserClaims

이 보안 주체의 모든 Windows 사용자 클레임을 가져옵니다.

메서드

AddIdentities(IEnumerable<ClaimsIdentity>)

이 클레임 주체에 지정된 클레임 ID를 추가합니다.

(다음에서 상속됨 ClaimsPrincipal)
AddIdentity(ClaimsIdentity)

이 클레임 보안 주체에 지정된 클레임 ID를 추가합니다.

(다음에서 상속됨 ClaimsPrincipal)
Clone()

이 인스턴스의 복사본을 반환합니다.

(다음에서 상속됨 ClaimsPrincipal)
CreateClaimsIdentity(BinaryReader)

새 클레임 ID를 만듭니다.

(다음에서 상속됨 ClaimsPrincipal)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
FindAll(Predicate<Claim>)

지정된 조건자와 일치하는 클레임을 모두 검색합니다.

(다음에서 상속됨 ClaimsPrincipal)
FindAll(String)

모든 클레임 또는 지정된 클레임 형식을 갖는 클레임을 검색합니다.

(다음에서 상속됨 ClaimsPrincipal)
FindFirst(Predicate<Claim>)

지정된 조건자와 일치하는 첫 번째 클레임을 검색합니다.

(다음에서 상속됨 ClaimsPrincipal)
FindFirst(String)

지정된 클레임 형식으로 첫 번째 클레임을 검색합니다.

(다음에서 상속됨 ClaimsPrincipal)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetObjectData(SerializationInfo, StreamingContext)

현재 SerializationInfo 개체를 serialize하는 데 필요한 데이터로 ClaimsPrincipal를 채웁니다.

(다음에서 상속됨 ClaimsPrincipal)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
HasClaim(Predicate<Claim>)

이 클레임 보안 주체와 연결된 클레임 ID에 지정된 조건자와 일치하는 클레임이 들어 있는지 여부를 확인합니다.

(다음에서 상속됨 ClaimsPrincipal)
HasClaim(String, String)

이 클레임 보안 주체와 연결된 클레임 ID에 지정된 클레임 형식 및 값을 갖는 클레임이 들어 있는지 여부를 확인합니다.

(다음에서 상속됨 ClaimsPrincipal)
IsInRole(Int32)

현재 보안 주체가 지정된 RID(상대 식별자)를 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.

IsInRole(SecurityIdentifier)

현재 보안 주체가 지정된 SID(보안 식별자)를 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.

IsInRole(String)

현재 보안 주체가 지정된 이름을 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.

IsInRole(WindowsBuiltInRole)

현재 보안 주체가 지정된 WindowsBuiltInRole을 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
WriteTo(BinaryWriter, Byte[])

BinaryWriter를 사용하여 직렬화합니다.

(다음에서 상속됨 ClaimsPrincipal)
WriteTo(BinaryWriter)

BinaryWriter를 사용하여 직렬화합니다.

(다음에서 상속됨 ClaimsPrincipal)

적용 대상