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

Definition

Bestimmt, ob der aktuelle Prinzipal zu einer angegebenen Windows-Benutzergruppe gehört.Determines whether the current principal belongs to a specified Windows user group.

Überlädt

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

Bestimmt, ob der aktuelle Prinzipal zur Windows-Benutzergruppe mit der angegebenen relativen ID (RID) gehört.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)

Bestimmt, ob der aktuelle Prinzipal zur Windows-Benutzergruppe mit der angegebenen Sicherheits-ID (SID) gehört.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)

Bestimmt, ob der aktuelle Prinzipal zu der Windows-Benutzergruppe mit der angegebenen WindowsBuiltInRole gehört.Determines whether the current principal belongs to the Windows user group with the specified WindowsBuiltInRole.

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

Bestimmt, ob der aktuelle Prinzipal zu der Windows-Benutzergruppe mit dem angegebenen Namen gehört.Determines whether the current principal belongs to the Windows user group with the specified name.

Hinweise

Es gibt vier über Ladungen für diese Methode.There are four overloads for this method. Aus Leistungsgründen wird die IsInRole(SecurityIdentifier) Überladung dringend empfohlen.For performance reasons, the IsInRole(SecurityIdentifier) overload is strongly recommended.

Wichtig

Die IsInRole -Methode wird unter Windows 98 oder Windows Millennium Edition nicht unterstützt.The IsInRole method is not supported on Windows 98 or Windows Millennium Edition.

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

Bestimmt, ob der aktuelle Prinzipal zur Windows-Benutzergruppe mit der angegebenen relativen ID (RID) gehört.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

Parameter

rid
Int32 Int32 Int32 Int32

Die RID der Windows-Benutzergruppe, die auf den Status der Mitgliedschaft des Prinzipals geprüft werden soll.The RID of the Windows user group in which to check for the principal's membership status.

Gibt zurück

true, wenn der aktuelle Prinzipal Mitglied der angegebenen Windows-Benutzergruppe ist, d. h. in einer bestimmten Rolle, andernfalls false.true if the current principal is a member of the specified Windows user group, that is, in a particular role; otherwise, false.

Beispiele

Im folgenden Codebeispiel wird die Verwendung IsInRole der-Methoden veranschaulicht.The following code example demonstrates the use of the IsInRole methods. Die WindowsBuiltInRole -Enumeration wird als Quelle für die RIDs verwendet, mit denen die integrierten Rollen identifiziert werden.The WindowsBuiltInRole enumeration is used as the source for the RIDs that identify the built-in roles. Die RIDs werden zum Bestimmen der Rollen des aktuellen Prinzipals verwendet.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.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 'SecurityPrincipalDemo 

Hinweise

Beim Testen auf neu erstellte Rollen Informationen, wie z. b. einen neuen Benutzer oder eine neue Gruppe, ist es wichtig, sich abzumelden und sich anzumelden, um die Weitergabe von Rollen Informationen in der Domäne zu erzwingen.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. Wenn dies nicht der Fall ist IsInRole , kann der falseTest zurückgegeben werden.Not doing so can cause the IsInRole test to return false. Diese Methode wird unter Windows 98 oder Windows Millennium Edition nicht unterstützt.This method is not supported on Windows 98 or Windows Millennium Edition.

Aus Leistungsgründen wird die IsInRole(SecurityIdentifier) Überladung als bevorzugte Überlastung zum Ermitteln der Rolle des Benutzers empfohlen.For performance reasons, the IsInRole(SecurityIdentifier) overload is recommended as the preferable overload for determining the user's role.

Hinweis

Unter Windows Vista werden die Berechtigungen eines Benutzers über die Benutzerkontensteuerung (User Account Control, UAC) bestimmt.In Windows Vista, User Account Control (UAC) determines the privileges of a user. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken.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. Standardmäßig verwenden Sie die Standardbenutzerrolle.By default, you are in the standard user role. Wenn Sie versuchen, eine Aufgabe auszuführen, für die Administratorrechte erforderlich sind, können Sie Ihre Rolle mithilfe des Dialog Felds "Zustimmung" dynamisch erhöhen.When you attempt to perform a task that requires administrative privileges, you can dynamically elevate your role by using the Consent dialog box. Der Code, der die IsInRole -Methode ausführt, zeigt das Dialogfeld "Zustimmung" nicht an.The code that executes the IsInRole method does not display the Consent dialog box. Der Code gibt false zurück, wenn Sie sich in der Standardbenutzer Rolle befinden, auch wenn Sie sich in der integrierten Gruppe "Administratoren" befinden.The code returns false if you are in the standard user role, even if you are in the Built-in Administrators group. Sie können Ihre Berechtigungen erhöhen, bevor Sie den Code ausführen, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie als Administrator ausführen möchten.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.

Relative Bezeichner (RIDs) sind Komponenten der Sicherheits-ID (SID) einer Windows-Benutzergruppe und werden unterstützt, um plattformübergreifende Lokalisierungs Probleme zu vermeiden.Relative identifiers (RIDs) are components of a Windows user group's security identifier (SID) and are supported to help prevent cross-platform localization issues. Viele Benutzerkonten, lokale Gruppen und globale Gruppen verfügen über einen standardmäßigen RID-Wert, der in allen Versionen von Windows konstant ist.Many user accounts, local groups, and global groups have a default RID value that is constant across all versions of Windows.

Die RID für die Rolle "BUILTIN\Administrators" lautet z. b. 0x220.For example, the RID for the BUILTIN\Administrators role is 0x220. Die Verwendung von 0x220 als Eingabeparameter für IsInRole die-Methode true führt dazu, dass zurückgegeben wird, wenn der aktuelle Prinzipal ein Administrator ist.Using 0x220 as the input parameter for the IsInRole method results in true being returned if the current principal is an administrator.

In den folgenden Tabellen sind die standardmäßigen Rid-Werte aufgeführt.The following tables list the default RID values.

Integrierte BenutzerBuilt-in users GESAGTRID
Domainname\administratorDOMAINNAME\Administrator 0x1F40x1F4
Domainname\guestDOMAINNAME\Guest 0x1F50x1F5
Integrierte globale GruppenBuilt-in global groups GESAGTRID
Domainname\domain AdminsDOMAINNAME\Domain Admins 0x2000x200
Domainname\domäne BenutzerDOMAINNAME\Domain Users 0x2010x201
Domainname\domain GästeDOMAINNAME\Domain Guests 0x2020x202
Integrierte lokale GruppenBuilt-in local groups GESAGTRID
VORDEFINIERT\AdministratorenBUILTIN\Administrators 0x2200x220
BUILTIN\UsersBUILTIN\Users 0x2210x221
Builtin\gästeBUILTIN\Guests 0x2220x222
Builtin\account-OperatorenBUILTIN\Account Operators 0x2240x224
BUILTIN\Server-OperatorenBUILTIN\Server Operators 0x2250x225
Builtin\print-OperatorenBUILTIN\Print Operators 0x2260x226
Builtin\backup-OperatorenBUILTIN\Backup Operators 0x2270x227
Builtin\replicatorBUILTIN\Replicator 0x2280x228

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

Bestimmt, ob der aktuelle Prinzipal zur Windows-Benutzergruppe mit der angegebenen Sicherheits-ID (SID) gehört.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

Parameter

sid
SecurityIdentifier SecurityIdentifier SecurityIdentifier SecurityIdentifier

Ein SecurityIdentifier, der eine Windows-Benutzergruppe eindeutig identifiziert.A SecurityIdentifier that uniquely identifies a Windows user group.

Gibt zurück

true, wenn der aktuelle Prinzipal Mitglied der angegebenen Windows-Benutzergruppe ist, andernfalls false.true if the current principal is a member of the specified Windows user group; otherwise, false.

Ausnahmen

Windows hat einen Win32-Fehler zurückgegeben.Windows returned a Win32 error.

Beispiele

Im folgenden Codebeispiel wird die Verwendung WindowsPrincipal.IsInRole(SecurityIdentifier) der-Methode veranschaulicht.The following code example demonstrates the use of the WindowsPrincipal.IsInRole(SecurityIdentifier) method. Der BuiltinAdministratorsSid -Enumerationswert wird verwendet, um zu bestimmen, ob der aktuelle Prinzipal ein Administrator ist.The BuiltinAdministratorsSid enumeration value is used to determine whether the current principal is an administrator. Das vollständige Codebeispiel finden Sie unter WindowsPrincipal.IsInRole(Int32) der-Methode.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

Hinweise

Mit wird ein Benutzer oder eine Gruppe auf Windows 2000-, Windows Server-und Windows XP-Implementierungen eindeutigidentifiziert.SecurityIdentifierThe SecurityIdentifier uniquely identifies a user or group on Windows 2000, Windows Server, and Windows XP implementations. Beim Testen auf neu erstellte Rollen Informationen, wie z. b. einen neuen Benutzer oder eine neue Gruppe, ist es wichtig, sich abzumelden und sich anzumelden, um die Weitergabe von Rollen Informationen in der Domäne zu erzwingen.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. Wenn dies nicht der Fall ist IsInRole , kann der falseTest zurückgegeben werden.Not doing so can cause the IsInRole test to return false. Diese Methode wird unter Windows 98 oder Windows Millennium Edition nicht unterstützt.This method is not supported on Windows 98 or Windows Millennium Edition.

Hinweis

Unter Windows Vista werden die Berechtigungen eines Benutzers über die Benutzerkontensteuerung (User Account Control, UAC) bestimmt.In Windows Vista, User Account Control (UAC) determines the privileges of a user. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken.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. Standardmäßig verwenden Sie die Standardbenutzerrolle.By default, you are in the standard user role. Wenn Sie versuchen, eine Aufgabe auszuführen, für die Administratorrechte erforderlich sind, können Sie Ihre Rolle mithilfe des Dialog Felds "Zustimmung" dynamisch erhöhen.When you attempt to perform a task that requires administrative privileges, you can dynamically elevate your role by using the Consent dialog box. Der Code, der die IsInRole -Methode ausführt, zeigt das Dialogfeld "Zustimmung" nicht an.The code that executes the IsInRole method does not display the Consent dialog box. Der Code gibt false zurück, wenn Sie sich in der Standardbenutzer Rolle befinden, auch wenn Sie sich in der integrierten Gruppe "Administratoren" befinden.The code returns false if you are in the standard user role, even if you are in the Built-in Administrators group. Sie können Ihre Berechtigungen erhöhen, bevor Sie den Code ausführen, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie als Administrator ausführen möchten.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.

Aus Leistungsgründen ist dies die bevorzugte Überlastung, um die Rolle eines Benutzers zu bestimmen.For performance reasons, this is the preferable overload to determine a user's role.

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

Bestimmt, ob der aktuelle Prinzipal zu der Windows-Benutzergruppe mit der angegebenen WindowsBuiltInRole gehört.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

Parameter

Gibt zurück

true, wenn der aktuelle Prinzipal Mitglied der angegebenen Windows-Benutzergruppe ist, andernfalls false.true if the current principal is a member of the specified Windows user group; otherwise, false.

Ausnahmen

Beispiele

Im folgenden Beispiel wird die WindowsBuiltInRole -Enumeration verwendet, um zu bestimmen, ob der aktuelle AdministratorPrinzipal eine ist.The following example uses the WindowsBuiltInRole enumeration is used to determine whether the current principal is an Administrator. Das vollständige Codebeispiel finden Sie unter WindowsPrincipal.IsInRole(Int32) der-Methode.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))

Hinweise

Beim Testen auf neu erstellte Rollen Informationen, wie z. b. einen neuen Benutzer oder eine neue Gruppe, ist es wichtig, sich abzumelden und sich anzumelden, um die Weitergabe von Rollen Informationen in der Domäne zu erzwingen.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. Wenn dies nicht der Fall ist IsInRole , kann der falseTest zurückgegeben werden.Not doing so can cause the IsInRole test to return false. Diese Methode wird unter Windows 98 oder Windows Millennium Edition nicht unterstützt.This method is not supported on Windows 98 or Windows Millennium Edition.

Aus Leistungsgründen wird die IsInRole(SecurityIdentifier) Überladung als bevorzugte Überlastung zum Ermitteln der Rolle des Benutzers empfohlen.For performance reasons, the IsInRole(SecurityIdentifier) overload is recommended as the preferable overload for determining the user's role.

Hinweis

Unter Windows Vista werden die Berechtigungen eines Benutzers über die Benutzerkontensteuerung (User Account Control, UAC) bestimmt.In Windows Vista, User Account Control (UAC) determines the privileges of a user. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken.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. Standardmäßig verwenden Sie die Standardbenutzerrolle.By default, you are in the standard user role. Wenn Sie versuchen, eine Aufgabe auszuführen, für die Administratorrechte erforderlich sind, können Sie Ihre Rolle mithilfe des Dialog Felds "Zustimmung" dynamisch erhöhen.When you attempt to perform a task that requires administrative privileges, you can dynamically elevate your role by using the Consent dialog box. Der Code, der die IsInRole -Methode ausführt, zeigt das Dialogfeld "Zustimmung" nicht an.The code that executes the IsInRole method does not display the Consent dialog box. Der Code gibt false zurück, wenn Sie sich in der Standardbenutzer Rolle befinden, auch wenn Sie sich in der integrierten Gruppe "Administratoren" befinden.The code returns false if you are in the standard user role, even if you are in the Built-in Administrators group. Sie können Ihre Berechtigungen erhöhen, bevor Sie den Code ausführen, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie als Administrator ausführen möchten.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)

Bestimmt, ob der aktuelle Prinzipal zu der Windows-Benutzergruppe mit dem angegebenen Namen gehört.Determines whether the current principal belongs to the Windows user group with the specified name.

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

Parameter

role
String String String String

Der Name der Windows-Benutzergruppe, für die die Mitgliedschaft überprüft werden soll.The name of the Windows user group for which to check membership.

Gibt zurück

true, wenn der aktuelle Prinzipal Mitglied der angegebenen Windows-Benutzergruppe ist, andernfalls false.true if the current principal is a member of the specified Windows user group; otherwise, false.

Beispiele

Im folgenden Codebeispiel wird die Verwendung WindowsPrincipal.IsInRole(String) der-Methode veranschaulicht.The following code example demonstrates the use of the WindowsPrincipal.IsInRole(String) method.

Die Zeichen folgen BUILTIN\Usersundwerden verwendet, um zu bestimmen, ob der aktuelle Prinzipal ein Administrator oder ein Benutzer ist. BUILTIN\AdministratorsThe strings BUILTIN\Administrators and BUILTIN\Users are used to determine whether the current principal is an administrator or a user. Das vollständige Codebeispiel finden Sie unter WindowsPrincipal.IsInRole(Int32) der-Methode.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"))

Hinweise

Beim Testen auf neu erstellte Rollen Informationen, wie z. b. einen neuen Benutzer oder eine neue Gruppe, ist es wichtig, sich abzumelden und sich anzumelden, um die Weitergabe von Rollen Informationen in der Domäne zu erzwingen.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. Wenn dies nicht der Fall ist IsInRole , kann der falseTest zurückgegeben werden.Not doing so can cause the IsInRole test to return false. Diese Methode wird unter Windows 98 oder Windows Millennium Edition nicht unterstützt.This method is not supported on Windows 98 or Windows Millennium Edition.

Aus Leistungsgründen wird die IsInRole(SecurityIdentifier) Überladung als bevorzugte Überlastung zum Ermitteln der Rolle des Benutzers empfohlen.For performance reasons, the IsInRole(SecurityIdentifier) overload is recommended as the preferable overload for determining the user's role.

Hinweis

Unter Windows Vista werden die Berechtigungen eines Benutzers über die Benutzerkontensteuerung (User Account Control, UAC) bestimmt.In Windows Vista, User Account Control (UAC) determines the privileges of a user. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken.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. Standardmäßig verwenden Sie die Standardbenutzerrolle.By default, you are in the standard user role. Wenn Sie versuchen, eine Aufgabe auszuführen, für die Administratorrechte erforderlich sind, können Sie Ihre Rolle mithilfe des Dialog Felds "Zustimmung" dynamisch erhöhen.When you attempt to perform a task that requires administrative privileges, you can dynamically elevate your role by using the Consent dialog box. Der Code, der die IsInRole -Methode ausführt, zeigt das Dialogfeld "Zustimmung" nicht an.The code that executes the IsInRole method does not display the Consent dialog box. Der Code gibt false zurück, wenn Sie sich in der Standardbenutzer Rolle befinden, auch wenn Sie sich in der integrierten Gruppe "Administratoren" befinden.The code returns false if you are in the standard user role, even if you are in the Built-in Administrators group. Sie können Ihre Berechtigungen erhöhen, bevor Sie den Code ausführen, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie als Administrator ausführen möchten.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.

Für integrierte Rollen sollte die role Zeichenfolge die Form "Builtin**\rolenamehere" aufweisen.For built-in roles, the role string should be in the form "BUILTIN\RoleNameHere". Wenn Sie z. b. die Mitgliedschaft in der Windows-Administrator Rolle testen möchten, sollte die Zeichenfolge, die die Rolle repräsentiert, "BUILTIN\Administrators" lauten.For example, to test for membership in the Windows administrator role, the string representing the role should be "BUILTIN\Administrators". Beachten Sie, dass der umgekehrte Schrägstrich mit Escapezeichen versehen werden muss.Note that the backslash might need to be escaped. In der folgenden Tabelle sind die integrierten Rollen aufgeführt.The following table lists the built-in roles.

Hinweis

Die Schreibweise für die integrierten Rollen im Zeichen folgen Format unterscheidet sich von der in WindowsBuiltInRole der-Enumeration verwendeten Schreibweise.The spelling for the BUILTIN roles in string format differs from the spelling used in the WindowsBuiltInRole enumeration. Die Schreibweise für einen Administrator in der-Enumeration lautet beispielsweise "Administrator", nicht "Administratoren".For example, the spelling for an administrator in the enumeration is "Administrator", not "Administrators". Wenn Sie diese Überladung verwenden, verwenden Sie die Schreibweise für die Rolle aus der folgenden Tabelle.When using this overload, use the spelling for the role from the following table.

Integrierte lokale GruppenBuilt-in local groups
VORDEFINIERT\AdministratorenBUILTIN\Administrators
BUILTIN\UsersBUILTIN\Users
Builtin\gästeBUILTIN\Guests
Builtin\account-OperatorenBUILTIN\Account Operators
BUILTIN\Server-OperatorenBUILTIN\Server Operators
Builtin\print-OperatorenBUILTIN\Print Operators
Builtin\backup-OperatorenBUILTIN\Backup Operators
Builtin\replicatorBUILTIN\Replicator

Für Computer spezifische Rollen sollte die role Zeichenfolge die Form "MachineName**\rolenamehere" aufweisen.For machine-specific roles, the role string should be in the form "MachineName\RoleNameHere".

Für domänenspezifische Rollen sollte die role Zeichenfolge in der Form "Domänen Name\ "SomeDomain\Domain Usersrolenamehere" vorliegen, z. b. ".For domain-specific roles, the role string should be in the form "DomainName\RoleNameHere"; for example, "SomeDomain\Domain Users".

Hinweis

In der .NET Framework Version 1,0 wird bei role dem-Parameter die Groß-/Kleinschreibung beachtet.In the .NET Framework version 1.0, the role parameter is case-sensitive. In der .NET Framework Version 1,1 und höher wird bei role dem-Parameter die Groß-/Kleinschreibung nicht beachtet.In the .NET Framework version 1.1 and later, the role parameter is case-insensitive.

Sicherheit

SecurityPermission
die Möglichkeit, das Prinzipal Objekt zu bearbeiten.for the ability to manipulate the principal object. Zugehörige Enumeration:ControlPrincipalAssociated enumeration: ControlPrincipal

Siehe auch

Gilt für: