Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

WindowsPrincipal.IsInRole méthode (Int32)

 

Date de publication : novembre 2016

Détermine si l’objet principal actuel appartient au groupe d’utilisateurs Windows ayant cet identificateur relatif (RID).

Espace de noms:   System.Security.Principal
Assembly:  mscorlib (dans mscorlib.dll)

public virtual bool IsInRole(
	int rid
)

Paramètres

rid
Type: System.Int32

Le numéro du RID du groupe d’utilisateurs Windows permettant de vérifier l’état d’appartenance du principal.

Valeur de retour

Type: System.Boolean

true Si l’objet principal actuel est un membre du groupe d’utilisateurs Windows spécifié, autrement dit, dans un rôle particulier ; dans le cas contraire, false.

Lorsque vous testez les informations de rôle nouvellement créé, par exemple un nouvel utilisateur ou un nouveau groupe, il est important de se déconnecter et se connecter pour forcer la propagation des informations de rôle au sein du domaine. Ne pas cela pourrait entraîner le IsInRole test doit retourner false. Cette méthode n’est pas pris en charge sur Windows 98 ou Windows Millennium Edition.

Pour des raisons de performances, le IsInRole(SecurityIdentifier) surcharge est recommandée comme surcharge préférable pour déterminer le rôle de l’utilisateur.

System_CAPS_noteRemarque

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 essayez d’effectuer une tâche qui nécessite 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 retourne 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 double-cliquant sur l’icône d’application et en indiquant que vous souhaitez exécuter en tant qu’administrateur.

Identificateurs relatifs (RID) sont des composants identificateur d’un groupe d’utilisateurs Windows de sécurité (SID) et sont prises en charge pour éviter les problèmes de localisation interplateforme. Plusieurs comptes d’utilisateurs, groupes locaux et groupes globaux ont une valeur RID par défaut constante dans toutes les versions de Windows.

Par exemple, le RID du rôle BUILTIN\Administrators est 0 x 220. À l’aide de 0x220 comme paramètre d’entrée pour le IsInRole la méthode employée true est retourné si l’objet 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

0 x 200

Utilisateurs DOMAINNAME\Domain

0 x 201

DOMAINNAME\Domain invités

0x202

Groupes locaux intégrés

RID

BUILTIN\Administrateurs

0x220

BUILTIN\Users

0x221

BUILTIN\Guests

0x222

Opérateurs d’ACE

0x224

Builtin\opérateurs de serveur

0x225

Opérateurs de BUILTIN\Print

0x226

Builtin\opérateurs de sauvegarde

0x227

BUILTIN\Replicator

0x228

L’exemple de code suivant illustre l’utilisation de la IsInRole méthodes. Le WindowsBuiltInRole énumération est utilisée comme source d’identificateurs relatifs qui identifient les rôles intégrés. Identificateurs servent à déterminer les rôles du principal actuel.

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();
    }
}

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: