WindowsPrincipal.IsInRole Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Détermine si l'objet Principal actuel appartient au groupe d'utilisateurs Windows spécifié.
Surcharges
IsInRole(Int32) |
Détermine si l'objet Principal actuel appartient au groupe d'utilisateurs Windows avec l'identificateur relatif (RID, Relative Identifier) spécifié. |
IsInRole(SecurityIdentifier) |
Détermine si l'objet Principal actuel appartient au groupe d'utilisateurs Windows avec l'identificateur de sécurité (SID) spécifié. |
IsInRole(WindowsBuiltInRole) |
Détermine si l'objet Principal actuel appartient au groupe d'utilisateurs Windows avec le WindowsBuiltInRole spécifié. |
IsInRole(String) |
Détermine si l'objet Principal actuel appartient au groupe d'utilisateurs Windows avec le nom spécifié. |
Remarques
Il y a quatre surcharges pour cette méthode. Pour des raisons de performances, la IsInRole(SecurityIdentifier) surcharge est fortement recommandée.
IsInRole(Int32)
Détermine si l'objet Principal actuel appartient au groupe d'utilisateurs Windows avec l'identificateur relatif (RID, Relative Identifier) spécifié.
public:
virtual bool IsInRole(int rid);
public virtual bool IsInRole (int rid);
override this.IsInRole : int -> bool
abstract member IsInRole : int -> bool
override this.IsInRole : int -> bool
Public Overridable Function IsInRole (rid As Integer) As Boolean
Paramètres
- rid
- Int32
RID du groupe d’utilisateurs Windows dans lequel rechercher l’état d’appartenance du principal.
Retours
true
si l'entité de sécurité actuelle est membre du groupe d'utilisateurs Windows spécifié, autrement dit s'il appartient à un rôle particulier ; sinon, false
.
Exemples
L’exemple de code suivant illustre l’utilisation des IsInRole méthodes. L' WindowsBuiltInRole énumération est utilisée comme source pour les RID qui identifient les rôles intégrés. Les RID servent à déterminer les rôles du principal actuel.
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
Remarques
Lorsque vous testez des informations de rôle nouvellement créées, telles qu’un nouvel utilisateur ou un nouveau groupe, il est important de se déconnecter et de se connecter pour forcer la propagation des informations de rôle au sein du domaine. Le fait de ne pas effectuer cette action peut entraîner le IsInRole retour du test false
.
Pour des raisons de performances, la IsInRole(SecurityIdentifier) surcharge est recommandée comme surcharge préférable pour déterminer le rôle de l’utilisateur.
Notes
Dans Windows Vista, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Lorsque vous tentez d’effectuer une tâche qui requiert des privilèges d’administrateur, vous pouvez élever dynamiquement votre rôle à l’aide de la boîte de dialogue de consentement. Le code qui exécute la IsInRole méthode n’affiche pas la boîte de dialogue de consentement. Le code renvoie la valeur false si vous êtes dans le rôle d’utilisateur standard, même si vous êtes dans le groupe Administrateurs intégré. Vous pouvez élever vos privilèges avant d’exécuter le code en cliquant avec le bouton droit sur l’icône de l’application et en indiquant que vous souhaitez exécuter en tant qu’administrateur.
les identificateurs relatifs (rid) sont des composants de l’identificateur de sécurité (SID) d’un groupe d’utilisateurs Windows et sont pris en charge pour empêcher les problèmes de localisation interplateforme. De nombreux comptes d’utilisateur, groupes locaux et groupes globaux ont une valeur RID par défaut qui est constante dans toutes les versions de Windows.
Par exemple, le RID du rôle BUILTIN\Administrators est 0x220. L’utilisation de 0x220 comme paramètre d’entrée pour la IsInRole méthode entraîne le true
renvoi de si le principal actuel est un administrateur.
Les tableaux suivants répertorient les valeurs RID par défaut.
Utilisateurs intégrés | RID |
---|---|
DOMAINNAME\Administrator | 0x1F4 |
DOMAINNAME\Guest | 0x1F5 |
Groupes globaux intégrés | RID |
---|---|
Administrateurs DOMAINNAME\Domain | 0x200 |
Utilisateurs DOMAINNAME\Domain | 0x201 |
Invités DOMAINNAME\Domain | 0x202 |
Groupes locaux intégrés | RID |
---|---|
BUILTIN\Administrators | 0x220 |
BUILTIN\Users | 0x221 |
BUILTIN\Guests | 0x222 |
BUILTIN\Account, opérateurs | 0x224 |
BUILTIN\Opérateurs de serveur | 0x225 |
BUILTIN\Print, opérateurs | 0x226 |
BUILTIN\Opérateurs de sauvegarde | 0x227 |
BUILTIN\Replicator | 0x228 |
S’applique à
IsInRole(SecurityIdentifier)
Détermine si l'objet Principal actuel appartient au groupe d'utilisateurs Windows avec l'identificateur de sécurité (SID) spécifié.
public:
virtual bool IsInRole(System::Security::Principal::SecurityIdentifier ^ 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
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member IsInRole : System.Security.Principal.SecurityIdentifier -> bool
override this.IsInRole : System.Security.Principal.SecurityIdentifier -> bool
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.IsInRole : System.Security.Principal.SecurityIdentifier -> bool
Public Overridable Function IsInRole (sid As SecurityIdentifier) As Boolean
Paramètres
SecurityIdentifier qui identifie de manière unique un groupe d'utilisateurs Windows.
Retours
true
si l'objet Principal actuel est membre du groupe d'utilisateurs Windows spécifié ; sinon, false
.
- Attributs
Exceptions
sid
a la valeur null
.
Windows a retourné une erreur Win32.
Exemples
L’exemple de code suivant illustre l’utilisation de la WindowsPrincipal.IsInRole(SecurityIdentifier) méthode. La BuiltinAdministratorsSid valeur d’énumération est utilisée pour déterminer si le principal actuel est un administrateur. Pour obtenir l’exemple de code complet, consultez la WindowsPrincipal.IsInRole(Int32) méthode.
// 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
Remarques
Le SecurityIdentifier identifie de manière unique un utilisateur ou un groupe sur Windows. Lorsque vous testez des informations de rôle nouvellement créées, telles qu’un nouvel utilisateur ou un nouveau groupe, il est important de se déconnecter et de se connecter pour forcer la propagation des informations de rôle au sein du domaine. Le fait de ne pas effectuer cette action peut entraîner le IsInRole retour du test false
.
Notes
Dans Windows Vista, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Lorsque vous tentez d’effectuer une tâche qui requiert des privilèges d’administrateur, vous pouvez élever dynamiquement votre rôle à l’aide de la boîte de dialogue de consentement. Le code qui exécute la IsInRole méthode n’affiche pas la boîte de dialogue de consentement. Le code renvoie la valeur false si vous êtes dans le rôle d’utilisateur standard, même si vous êtes dans le groupe Administrateurs intégré. Vous pouvez élever vos privilèges avant d’exécuter le code en cliquant avec le bouton droit sur l’icône de l’application et en indiquant que vous souhaitez exécuter en tant qu’administrateur.
Pour des raisons de performances, il s’agit de la surcharge préférable pour déterminer le rôle d’un utilisateur.
S’applique à
IsInRole(WindowsBuiltInRole)
Détermine si l'objet Principal actuel appartient au groupe d'utilisateurs Windows avec le WindowsBuiltInRole spécifié.
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
abstract member IsInRole : System.Security.Principal.WindowsBuiltInRole -> bool
override this.IsInRole : System.Security.Principal.WindowsBuiltInRole -> bool
Public Overridable Function IsInRole (role As WindowsBuiltInRole) As Boolean
Paramètres
- role
- WindowsBuiltInRole
Une des valeurs de l'objet WindowsBuiltInRole.
Retours
true
si l'objet Principal actuel est membre du groupe d'utilisateurs Windows spécifié ; sinon, false
.
Exceptions
role
n’est pas une valeur de WindowsBuiltInRole valide.
Exemples
L’exemple suivant utilise l' WindowsBuiltInRole énumération pour déterminer si le principal actuel est un Administrator . Pour obtenir l’exemple de code complet, consultez la WindowsPrincipal.IsInRole(Int32) méthode.
// 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))
Remarques
Lorsque vous testez des informations de rôle nouvellement créées, telles qu’un nouvel utilisateur ou un nouveau groupe, il est important de se déconnecter et de se connecter pour forcer la propagation des informations de rôle au sein du domaine. Le fait de ne pas effectuer cette action peut entraîner le IsInRole retour du test false
.
Pour des raisons de performances, la IsInRole(SecurityIdentifier) surcharge est recommandée comme surcharge préférable pour déterminer le rôle de l’utilisateur.
Notes
Dans Windows Vista, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Lorsque vous tentez d’effectuer une tâche qui requiert des privilèges d’administrateur, vous pouvez élever dynamiquement votre rôle à l’aide de la boîte de dialogue de consentement. Le code qui exécute la IsInRole méthode n’affiche pas la boîte de dialogue de consentement. Le code renvoie la valeur false si vous êtes dans le rôle d’utilisateur standard, même si vous êtes dans le groupe Administrateurs intégré. Vous pouvez élever vos privilèges avant d’exécuter le code en cliquant avec le bouton droit sur l’icône de l’application et en indiquant que vous souhaitez exécuter en tant qu’administrateur.
S’applique à
IsInRole(String)
Détermine si l'objet Principal actuel appartient au groupe d'utilisateurs Windows avec le nom spécifié.
public:
override bool IsInRole(System::String ^ role);
public:
virtual bool IsInRole(System::String ^ role);
public override bool IsInRole (string role);
public virtual bool IsInRole (string role);
override this.IsInRole : string -> bool
abstract member IsInRole : string -> bool
override this.IsInRole : string -> bool
Public Overrides Function IsInRole (role As String) As Boolean
Public Overridable Function IsInRole (role As String) As Boolean
Paramètres
- role
- String
Nom du groupe d'utilisateurs Windows pour lequel l'appartenance doit être vérifiée.
Retours
true
si l'objet Principal actuel est membre du groupe d'utilisateurs Windows spécifié ; sinon, false
.
Implémente
Exemples
L’exemple de code suivant illustre l’utilisation de la WindowsPrincipal.IsInRole(String) méthode.
Les chaînes BUILTIN\Administrators
et BUILTIN\Users
sont utilisées pour déterminer si le principal actuel est un administrateur ou un utilisateur. Pour obtenir l’exemple de code complet, consultez la WindowsPrincipal.IsInRole(Int32) méthode.
// 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"))
Remarques
Lorsque vous testez des informations de rôle nouvellement créées, telles qu’un nouvel utilisateur ou un nouveau groupe, il est important de se déconnecter et de se connecter pour forcer la propagation des informations de rôle au sein du domaine. Le fait de ne pas effectuer cette action peut entraîner le IsInRole retour du test false
.
Pour des raisons de performances, la IsInRole(SecurityIdentifier) surcharge est recommandée comme surcharge préférable pour déterminer le rôle de l’utilisateur.
Notes
Dans Windows Vista, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Lorsque vous tentez d’effectuer une tâche qui requiert des privilèges d’administrateur, vous pouvez élever dynamiquement votre rôle à l’aide de la boîte de dialogue de consentement. Le code qui exécute la IsInRole méthode n’affiche pas la boîte de dialogue de consentement. Le code renvoie la valeur false si vous êtes dans le rôle d’utilisateur standard, même si vous êtes dans le groupe Administrateurs intégré. Vous pouvez élever vos privilèges avant d’exécuter le code en cliquant avec le bouton droit sur l’icône de l’application et en indiquant que vous souhaitez exécuter en tant qu’administrateur.
Pour les rôles intégrés, la role
chaîne doit se présenter sous la forme « builtin \ RoleNameHere». par exemple, pour tester l’appartenance au rôle d’administrateur Windows, la chaîne représentant le rôle doit être « BUILTIN\Administrators ». Notez que la barre oblique inverse devra peut-être être placée dans une séquence d’échappement. Le tableau suivant répertorie les rôles intégrés.
Notes
L’orthographe pour les rôles intégrés au format chaîne diffère de l’orthographe utilisée dans l' WindowsBuiltInRole énumération. Par exemple, l’orthographe d’un administrateur dans l’énumération est « administrateur », et non « administrateurs ». Lorsque vous utilisez cette surcharge, utilisez l’orthographe du rôle à partir du tableau suivant.
Groupes locaux intégrés |
---|
BUILTIN\Administrators |
BUILTIN\Users |
BUILTIN\Guests |
BUILTIN\Account, opérateurs |
BUILTIN\Opérateurs de serveur |
BUILTIN\Print, opérateurs |
BUILTIN\Opérateurs de sauvegarde |
BUILTIN\Replicator |
Pour les rôles spécifiques à l’ordinateur, la role
chaîne doit se présenter sous la forme « MachineName \ RoleNameHere».
Pour les rôles spécifiques à un domaine, la role
chaîne doit se présenter sous la forme "nom_domaine \ RoleNameHere"; par exemple, "SomeDomain\Domain Users
".
Notes
dans le .NET Framework version 1,0, le role
paramètre respecte la casse. dans le .NET Framework version 1,1 et versions ultérieures, le paramètre ne respecte pas la role
casse.