WindowsPrincipal.IsInRole WindowsPrincipal.IsInRole WindowsPrincipal.IsInRole WindowsPrincipal.IsInRole Method

정의

현재 보안 주체가 지정된 Windows 사용자 그룹에 속하는지 여부를 확인합니다.Determines whether the current principal belongs to a specified Windows user group.

오버로드

IsInRole(Int32) IsInRole(Int32) IsInRole(Int32) IsInRole(Int32)

현재 보안 주체가 지정된 RID(상대 식별자)를 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.Determines whether the current principal belongs to the Windows user group with the specified relative identifier (RID).

IsInRole(SecurityIdentifier) IsInRole(SecurityIdentifier) IsInRole(SecurityIdentifier) IsInRole(SecurityIdentifier)

현재 보안 주체가 지정된 SID(보안 식별자)를 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.Determines whether the current principal belongs to the Windows user group with the specified security identifier (SID).

IsInRole(WindowsBuiltInRole) IsInRole(WindowsBuiltInRole) IsInRole(WindowsBuiltInRole) IsInRole(WindowsBuiltInRole)

현재 보안 주체가 지정된 WindowsBuiltInRole을 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.Determines whether the current principal belongs to the Windows user group with the specified WindowsBuiltInRole.

IsInRole(String) IsInRole(String) IsInRole(String) IsInRole(String)

현재 보안 주체가 지정된 이름을 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.Determines whether the current principal belongs to the Windows user group with the specified name.

설명

이 메서드에 대 한 4 개의 오버 로드가 있습니다.There are four overloads for this method. 성능상의 이유로 IsInRole(SecurityIdentifier) 오버 로드 것이 좋습니다.For performance reasons, the IsInRole(SecurityIdentifier) overload is strongly recommended.

중요

IsInRole 메서드가 Windows 98 또는 Windows Millennium Edition에서 지원 되지 않습니다.The IsInRole method is not supported on Windows 98 or Windows Millennium Edition.

IsInRole(Int32) IsInRole(Int32) IsInRole(Int32) IsInRole(Int32)

현재 보안 주체가 지정된 RID(상대 식별자)를 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.Determines whether the current principal belongs to the Windows user group with the specified relative identifier (RID).

public:
 virtual bool IsInRole(int rid);
public virtual bool IsInRole (int rid);
override this.IsInRole : int -> bool
Public Overridable Function IsInRole (rid As Integer) As Boolean

매개 변수

rid
Int32 Int32 Int32 Int32

보안 주체의 구성원 자격 상태를 확인할 Windows 사용자 그룹의 RID입니다.The RID of the Windows user group in which to check for the principal's membership status.

반환

현재 보안 주체가 지정된 Windows 사용자 그룹의 멤버이면, 즉 특정 역할에 속해 있으면 true이고, 그렇지 않으면 false입니다.true if the current principal is a member of the specified Windows user group, that is, in a particular role; otherwise, false.

예제

다음 코드 예제에서는 IsInRole 메서드.The following code example demonstrates the use of the IsInRole methods. WindowsBuiltInRole 열거형은 기본 제공 역할을 식별 하는 Rid에 대 한 원본으로 사용 합니다.The WindowsBuiltInRole enumeration is used as the source for the RIDs that identify the built-in roles. Rid는 현재 사용자의 역할을 결정 하는 데 사용 됩니다.The RIDs are used to determine the roles of the current principal.

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
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 'DemonstrateWindowsBuiltInRoleEnum

    Public Shared Sub Main()
        DemonstrateWindowsBuiltInRoleEnum()

    End Sub 'Main
End Class 'SecurityPrincipalDemo 

설명

새 그룹을 새 사용자 등의 새로 만든된 역할 정보를 테스트할 때에 로그 아웃 했다가 로그인의 도메인 내에서 역할 정보 전파 되도록 하는 일을 해야 합니다.When testing for newly created role information, such as a new user or a new group, it is important to log out and log in to force the propagation of role information within the domain. 이렇게 하지 않으면 발생할 수 있습니다 합니다 IsInRole 반환할 테스트 false합니다.Not doing so can cause the IsInRole test to return false. Windows 98 또는 Windows Millennium Edition에서 이 메서드가 지원되지 않는 경우This method is not supported on Windows 98 or Windows Millennium Edition.

성능상의 이유로 IsInRole(SecurityIdentifier) 오버 로드가 사용자의 역할을 결정 하기 위한 것이 좋습니다 오버 로드로 권장 됩니다.For performance reasons, the IsInRole(SecurityIdentifier) overload is recommended as the preferable overload for determining the user's role.

참고

Windows Vista에서는 UAC(사용자 계정 컨트롤)가 사용자 권한을 결정합니다.In Windows Vista, User Account Control (UAC) determines the privileges of a user. 기본 제공 Administrators 그룹의 멤버인 경우 두 개의 런타임 액세스 토큰(표준 사용자 액세스 토큰 및 관리자 액세스 토큰)이 할당됩니다.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. 기본적으로 표준 사용자 역할이 지정됩니다.By default, you are in the standard user role. 관리 권한이 필요한 작업을 수행 하려고 할 때 동의 대화 상자를 사용 하 여 사용자의 역할을 동적으로 높일 수 있습니다.When you attempt to perform a task that requires administrative privileges, you can dynamically elevate your role by using the Consent dialog box. 실행 하는 코드는 IsInRole 메서드 동의 대화 상자를 표시 하지 않습니다.The code that executes the IsInRole method does not display the Consent dialog box. 기본 제공 관리자 그룹에 있는 경우에 표준 사용자 역할이 있는 경우 false를 반환 하는 코드입니다.The code returns false if you are in the standard user role, even if you are in the Built-in Administrators group. 애플리케이션 아이콘을 마우스 오른쪽 단추로 클릭 하 고 관리자 권한으로 실행을 클릭 하 여 코드를 실행 하기 전에 귀하의 권한을 높일 수 있습니다.You can elevate your privileges before you execute the code by right-clicking the application icon and indicating that you want to run as an administrator.

Rid (상대 식별자)는 Windows 사용자 그룹의 SID (보안 식별자)의 구성 요소 및 플랫폼 간 지역화 문제를 방지 하는 데 지원 됩니다.Relative identifiers (RIDs) are components of a Windows user group's security identifier (SID) and are supported to help prevent cross-platform localization issues. 여러 사용자 계정, 로컬 그룹 및 글로벌 그룹 기본값이 RID 모든 버전의 Windows에서 상수입니다.Many user accounts, local groups, and global groups have a default RID value that is constant across all versions of Windows.

예를 들어, BUILTIN\Administrators 역할에 대 한 RID 0x220입니다.For example, the RID for the BUILTIN\Administrators role is 0x220. 0x220이에 대 한 입력된 매개 변수로 사용 합니다 IsInRole 메서드 true 되 고 현재 사용자가 관리자 인지를 반환 합니다.Using 0x220 as the input parameter for the IsInRole method results in true being returned if the current principal is an administrator.

다음 표에서 기본 RID 값을 보여 줍니다.The following tables list the default RID values.

기본 제공 사용자Built-in users RIDRID
DOMAINNAME\AdministratorDOMAINNAME\Administrator 0x1F40x1F4
DOMAINNAME\GuestDOMAINNAME\Guest 0x1F50x1F5
기본 제공 글로벌 그룹Built-in global groups RIDRID
DOMAINNAME\Domain 관리자DOMAINNAME\Domain Admins 0x2000x200
DOMAINNAME\Domain 사용자DOMAINNAME\Domain Users 0x2010x201
DOMAINNAME\Domain 게스트DOMAINNAME\Domain Guests 0x2020x202
기본 제공 로컬 그룹Built-in local groups RIDRID
BUILTIN\AdministratorsBUILTIN\Administrators 0x2200x220
BUILTIN\UsersBUILTIN\Users 0x2210x221
BUILTIN\GuestsBUILTIN\Guests 0x2220x222
BUILTIN\Account 연산자BUILTIN\Account Operators 0x2240x224
BUILTIN\Server 연산자BUILTIN\Server Operators 0x2250x225
BUILTIN\Print 연산자BUILTIN\Print Operators 0x2260x226
BUILTIN\Backup 연산자BUILTIN\Backup Operators 0x2270x227
BUILTIN\ReplicatorBUILTIN\Replicator 0x2280x228

IsInRole(SecurityIdentifier) IsInRole(SecurityIdentifier) IsInRole(SecurityIdentifier) IsInRole(SecurityIdentifier)

현재 보안 주체가 지정된 SID(보안 식별자)를 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.Determines whether the current principal belongs to the Windows user group with the specified security identifier (SID).

public:
 virtual bool IsInRole(System::Security::Principal::SecurityIdentifier ^ sid);
[System.Runtime.InteropServices.ComVisible(false)]
public virtual bool IsInRole (System.Security.Principal.SecurityIdentifier sid);
override this.IsInRole : System.Security.Principal.SecurityIdentifier -> bool
Public Overridable Function IsInRole (sid As SecurityIdentifier) As Boolean

매개 변수

sid
SecurityIdentifier SecurityIdentifier SecurityIdentifier SecurityIdentifier

Windows 사용자 그룹을 고유하게 식별하는 SecurityIdentifier입니다.A SecurityIdentifier that uniquely identifies a Windows user group.

반환

현재 보안 주체가 지정된 Windows 사용자 그룹의 멤버이면 true이고, 그렇지 않으면 false입니다.true if the current principal is a member of the specified Windows user group; otherwise, false.

예외

Windows에서 Win32 오류를 반환한 경우Windows returned a Win32 error.

예제

다음 코드 예제에서는 WindowsPrincipal.IsInRole(SecurityIdentifier) 메서드.The following code example demonstrates the use of the WindowsPrincipal.IsInRole(SecurityIdentifier) method. BuiltinAdministratorsSid 현재 보안 주체 관리자 인지 여부를 확인 하려면 열거형 값이 사용 됩니다.The BuiltinAdministratorsSid enumeration value is used to determine whether the current principal is an administrator. 전체 코드 예제에 대 한 참조를 WindowsPrincipal.IsInRole(Int32) 메서드.For the full code example, see the WindowsPrincipal.IsInRole(Int32) method.

// Get the role using the WellKnownSidType.
SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid  {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid));
    ' 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 'DemonstrateWindowsBuiltInRoleEnum

설명

SecurityIdentifier 사용자 또는 Windows 2000, Windows Server 및 Windows XP 구현에서 그룹을 고유 하 게 식별 합니다.The SecurityIdentifier uniquely identifies a user or group on Windows 2000, Windows Server, and Windows XP implementations. 새 그룹을 새 사용자 등의 새로 만든된 역할 정보를 테스트할 때에 로그 아웃 했다가 로그인의 도메인 내에서 역할 정보 전파 되도록 하는 일을 해야 합니다.When testing for newly created role information, such as a new user or a new group, it is important to log out and log in to force the propagation of role information within the domain. 이렇게 하지 않으면 발생할 수 있습니다 합니다 IsInRole 반환할 테스트 false합니다.Not doing so can cause the IsInRole test to return false. Windows 98 또는 Windows Millennium Edition에서 이 메서드가 지원되지 않는 경우This method is not supported on Windows 98 or Windows Millennium Edition.

참고

Windows Vista에서는 UAC(사용자 계정 컨트롤)가 사용자 권한을 결정합니다.In Windows Vista, User Account Control (UAC) determines the privileges of a user. 기본 제공 Administrators 그룹의 멤버인 경우 두 개의 런타임 액세스 토큰(표준 사용자 액세스 토큰 및 관리자 액세스 토큰)이 할당됩니다.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. 기본적으로 표준 사용자 역할이 지정됩니다.By default, you are in the standard user role. 관리 권한이 필요한 작업을 수행 하려고 할 때 동의 대화 상자를 사용 하 여 사용자의 역할을 동적으로 높일 수 있습니다.When you attempt to perform a task that requires administrative privileges, you can dynamically elevate your role by using the Consent dialog box. 실행 하는 코드는 IsInRole 메서드 동의 대화 상자를 표시 하지 않습니다.The code that executes the IsInRole method does not display the Consent dialog box. 기본 제공 관리자 그룹에 있는 경우에 표준 사용자 역할이 있는 경우 false를 반환 하는 코드입니다.The code returns false if you are in the standard user role, even if you are in the Built-in Administrators group. 애플리케이션 아이콘을 마우스 오른쪽 단추로 클릭 하 고 관리자 권한으로 실행을 클릭 하 여 코드를 실행 하기 전에 귀하의 권한을 높일 수 있습니다.You can elevate your privileges before you execute the code by right-clicking the application icon and indicating that you want to run as an administrator.

성능상의 이유로, 사용자의 역할을 확인 하는 것이 좋습니다 오버 로드입니다.For performance reasons, this is the preferable overload to determine a user's role.

IsInRole(WindowsBuiltInRole) IsInRole(WindowsBuiltInRole) IsInRole(WindowsBuiltInRole) IsInRole(WindowsBuiltInRole)

현재 보안 주체가 지정된 WindowsBuiltInRole을 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.Determines whether the current principal belongs to the Windows user group with the specified WindowsBuiltInRole.

public:
 virtual bool IsInRole(System::Security::Principal::WindowsBuiltInRole role);
public virtual bool IsInRole (System.Security.Principal.WindowsBuiltInRole role);
override this.IsInRole : System.Security.Principal.WindowsBuiltInRole -> bool
Public Overridable Function IsInRole (role As WindowsBuiltInRole) As Boolean

매개 변수

반환

현재 보안 주체가 지정된 Windows 사용자 그룹의 멤버이면 true이고, 그렇지 않으면 false입니다.true if the current principal is a member of the specified Windows user group; otherwise, false.

예외

role은 유효한 WindowsBuiltInRole 값이 아닙니다.role is not a valid WindowsBuiltInRole value.

예제

다음 예제에서는 합니다 WindowsBuiltInRole 열거형 현재 보안 주체 인지 여부를 확인 하는 데 사용 됩니다는 Administrator합니다.The following example uses the WindowsBuiltInRole enumeration is used to determine whether the current principal is an Administrator. 전체 코드 예제에 대 한 참조를 WindowsPrincipal.IsInRole(Int32) 메서드.For the full code example, see the WindowsPrincipal.IsInRole(Int32) method.

// Get the role using the WindowsBuiltInRole enumeration value.
Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator,
   myPrincipal.IsInRole(WindowsBuiltInRole.Administrator));
' Get the role using the WindowsBuiltInRole enumeration value.
Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator, myPrincipal.IsInRole(WindowsBuiltInRole.Administrator))

설명

새 그룹을 새 사용자 등의 새로 만든된 역할 정보를 테스트할 때에 로그 아웃 했다가 로그인의 도메인 내에서 역할 정보 전파 되도록 하는 일을 해야 합니다.When testing for newly created role information, such as a new user or a new group, it is important to log out and log in to force the propagation of role information within the domain. 이렇게 하지 않으면 발생할 수 있습니다 합니다 IsInRole 반환할 테스트 false합니다.Not doing so can cause the IsInRole test to return false. Windows 98 또는 Windows Millennium Edition에서 이 메서드가 지원되지 않는 경우This method is not supported on Windows 98 or Windows Millennium Edition.

성능상의 이유로 IsInRole(SecurityIdentifier) 오버 로드가 사용자의 역할을 결정 하기 위한 것이 좋습니다 오버 로드로 권장 됩니다.For performance reasons, the IsInRole(SecurityIdentifier) overload is recommended as the preferable overload for determining the user's role.

참고

Windows Vista에서는 UAC(사용자 계정 컨트롤)가 사용자 권한을 결정합니다.In Windows Vista, User Account Control (UAC) determines the privileges of a user. 기본 제공 Administrators 그룹의 멤버인 경우 두 개의 런타임 액세스 토큰(표준 사용자 액세스 토큰 및 관리자 액세스 토큰)이 할당됩니다.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. 기본적으로 표준 사용자 역할이 지정됩니다.By default, you are in the standard user role. 관리 권한이 필요한 작업을 수행 하려고 할 때 동의 대화 상자를 사용 하 여 사용자의 역할을 동적으로 높일 수 있습니다.When you attempt to perform a task that requires administrative privileges, you can dynamically elevate your role by using the Consent dialog box. 실행 하는 코드는 IsInRole 메서드 동의 대화 상자를 표시 하지 않습니다.The code that executes the IsInRole method does not display the Consent dialog box. 기본 제공 관리자 그룹에 있는 경우에 표준 사용자 역할이 있는 경우 false를 반환 하는 코드입니다.The code returns false if you are in the standard user role, even if you are in the Built-in Administrators group. 애플리케이션 아이콘을 마우스 오른쪽 단추로 클릭 하 고 관리자 권한으로 실행을 클릭 하 여 코드를 실행 하기 전에 귀하의 권한을 높일 수 있습니다.You can elevate your privileges before you execute the code by right-clicking the application icon and indicating that you want to run as an administrator.

IsInRole(String) IsInRole(String) IsInRole(String) IsInRole(String)

현재 보안 주체가 지정된 이름을 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다.Determines whether the current principal belongs to the Windows user group with the specified name.

public:
 override bool IsInRole(System::String ^ role);
public override bool IsInRole (string role);
override this.IsInRole : string -> bool
Public Overrides Function IsInRole (role As String) As Boolean

매개 변수

role
String String String String

멤버 자격을 확인할 Windows 사용자 그룹의 이름입니다.The name of the Windows user group for which to check membership.

반환

현재 보안 주체가 지정된 Windows 사용자 그룹의 멤버이면 true이고, 그렇지 않으면 false입니다.true if the current principal is a member of the specified Windows user group; otherwise, false.

예제

다음 코드 예제에서는 WindowsPrincipal.IsInRole(String) 메서드.The following code example demonstrates the use of the WindowsPrincipal.IsInRole(String) method.

문자열 BUILTIN\AdministratorsBUILTIN\Users 현재 보안 주체 관리자 또는 사용자 인지 확인 하는 데 사용 됩니다.The strings BUILTIN\Administrators and BUILTIN\Users are used to determine whether the current principal is an administrator or a user. 전체 코드 예제에 대 한 참조를 WindowsPrincipal.IsInRole(Int32) 메서드.For the full code example, see the WindowsPrincipal.IsInRole(Int32) method.

// 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 string value of the role.
Console.WriteLine("{0}? {1}.", "Administrators", myPrincipal.IsInRole("BUILTIN\" + "Administrators"))
Console.WriteLine("{0}? {1}.", "Users", myPrincipal.IsInRole("BUILTIN\" + "Users"))

설명

새 그룹을 새 사용자 등의 새로 만든된 역할 정보를 테스트할 때에 로그 아웃 했다가 로그인의 도메인 내에서 역할 정보 전파 되도록 하는 일을 해야 합니다.When testing for newly created role information, such as a new user or a new group, it is important to log out and log in to force the propagation of role information within the domain. 이렇게 하지 않으면 발생할 수 있습니다 합니다 IsInRole 반환할 테스트 false합니다.Not doing so can cause the IsInRole test to return false. Windows 98 또는 Windows Millennium Edition에서 이 메서드가 지원되지 않는 경우This method is not supported on Windows 98 or Windows Millennium Edition.

성능상의 이유로 IsInRole(SecurityIdentifier) 오버 로드가 사용자의 역할을 결정 하기 위한 것이 좋습니다 오버 로드로 권장 됩니다.For performance reasons, the IsInRole(SecurityIdentifier) overload is recommended as the preferable overload for determining the user's role.

참고

Windows Vista에서는 UAC(사용자 계정 컨트롤)가 사용자 권한을 결정합니다.In Windows Vista, User Account Control (UAC) determines the privileges of a user. 기본 제공 Administrators 그룹의 멤버인 경우 두 개의 런타임 액세스 토큰(표준 사용자 액세스 토큰 및 관리자 액세스 토큰)이 할당됩니다.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. 기본적으로 표준 사용자 역할이 지정됩니다.By default, you are in the standard user role. 관리 권한이 필요한 작업을 수행 하려고 할 때 동의 대화 상자를 사용 하 여 사용자의 역할을 동적으로 높일 수 있습니다.When you attempt to perform a task that requires administrative privileges, you can dynamically elevate your role by using the Consent dialog box. 실행 하는 코드는 IsInRole 메서드 동의 대화 상자를 표시 하지 않습니다.The code that executes the IsInRole method does not display the Consent dialog box. 기본 제공 관리자 그룹에 있는 경우에 표준 사용자 역할이 있는 경우 false를 반환 하는 코드입니다.The code returns false if you are in the standard user role, even if you are in the Built-in Administrators group. 애플리케이션 아이콘을 마우스 오른쪽 단추로 클릭 하 고 관리자 권한으로 실행을 클릭 하 여 코드를 실행 하기 전에 귀하의 권한을 높일 수 있습니다.You can elevate your privileges before you execute the code by right-clicking the application icon and indicating that you want to run as an administrator.

기본 제공 역할에 대 한 합니다 role 문자열 형식에서 이어야 합니다 "BUILTIN\RoleNameHere"입니다.For built-in roles, the role string should be in the form "BUILTIN\RoleNameHere". 예를 들어 Windows 관리자 역할의 멤버 자격을 테스트 하려면 역할을 나타내는 문자열 "BUILTIN\Administrators" 해야 합니다.For example, to test for membership in the Windows administrator role, the string representing the role should be "BUILTIN\Administrators". 백슬래시를 이스케이프 처리 해야 할 수 있는 참고 합니다.Note that the backslash might need to be escaped. 다음 표에서 기본 제공 역할을 나열합니다.The following table lists the built-in roles.

참고

에 사용 되는 맞춤법에서 다른 문자열 형식에 기본 제공 역할에 대 한 맞춤법을 WindowsBuiltInRole 열거형입니다.The spelling for the BUILTIN roles in string format differs from the spelling used in the WindowsBuiltInRole enumeration. 예를 들어, 열거형에는 관리자에 대 한 맞춤법 "관리자"가 아니라 "관리자"입니다.For example, the spelling for an administrator in the enumeration is "Administrator", not "Administrators". 이 오버 로드를 사용 하는 경우 다음 테이블에서 역할에 대해 철자를 사용 합니다.When using this overload, use the spelling for the role from the following table.

기본 제공 로컬 그룹Built-in local groups
BUILTIN\AdministratorsBUILTIN\Administrators
BUILTIN\UsersBUILTIN\Users
BUILTIN\GuestsBUILTIN\Guests
BUILTIN\Account 연산자BUILTIN\Account Operators
BUILTIN\Server 연산자BUILTIN\Server Operators
BUILTIN\Print 연산자BUILTIN\Print Operators
BUILTIN\Backup 연산자BUILTIN\Backup Operators
BUILTIN\ReplicatorBUILTIN\Replicator

컴퓨터의 특정 역할에 대 한 합니다 role 문자열 형식에서 이어야 합니다 "MachineName\RoleNameHere"입니다.For machine-specific roles, the role string should be in the form "MachineName\RoleNameHere".

도메인 특정 역할에 대 한 합니다 role 문자열 형식에서 이어야 합니다 "DomainName\RoleNameHere" 예를 들어, "SomeDomain\Domain Users"입니다.For domain-specific roles, the role string should be in the form "DomainName\RoleNameHere"; for example, "SomeDomain\Domain Users".

참고

.NET Framework 버전 1.0에에서는 role 매개 변수는 대/소문자 구분 합니다.In the .NET Framework version 1.0, the role parameter is case-sensitive. .NET Framework 버전 1.1 이상에 role 매개 변수는 대/소문자 구분 합니다.In the .NET Framework version 1.1 and later, the role parameter is case-insensitive.

보안

SecurityPermission
보안 주체 개체를 조작할 수 있습니다.for the ability to manipulate the principal object. 연결 된 열거형: ControlPrincipalAssociated enumeration: ControlPrincipal

추가 정보

적용 대상