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

MutexAccessRule classe

 

Date de publication : novembre 2016

Représente un ensemble de droits d’accès accordés ou refusés pour un utilisateur ou un groupe. Cette classe ne peut pas être héritée.

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


public sealed class MutexAccessRule : AccessRule

NomDescription
System_CAPS_pubmethodMutexAccessRule(IdentityReference, MutexRights, AccessControlType)

Initialise une nouvelle instance de la MutexAccessRule classe, en spécifiant l’utilisateur ou le groupe de la règle s’applique, les droits d’accès, et si les droits d’accès sont accordés ou refusés.

System_CAPS_pubmethodMutexAccessRule(String, MutexRights, AccessControlType)

Initialise une nouvelle instance de la MutexAccessRule classe, en spécifiant le nom de l’utilisateur ou le groupe de la règle s’applique, les droits d’accès, et si les droits d’accès sont accordés ou refusés.

NomDescription
System_CAPS_pubpropertyAccessControlType

Obtient le AccessControlType valeur associée à ce AccessRule objet.(Hérité de AccessRule.)

System_CAPS_protpropertyAccessMask

Obtient le masque d’accès de cette règle.(Hérité de AuthorizationRule.)

System_CAPS_pubpropertyIdentityReference

Obtient l’objet IdentityReference auquel cette règle s’applique.(Hérité de AuthorizationRule.)

System_CAPS_pubpropertyInheritanceFlags

Obtient la valeur des indicateurs qui déterminent comment cette règle est héritée par les objets enfants.(Hérité de AuthorizationRule.)

System_CAPS_pubpropertyIsInherited

Obtient une valeur qui indique si cette règle est explicitement définie ou héritée d’un objet de conteneur parent.(Hérité de AuthorizationRule.)

System_CAPS_pubpropertyMutexRights

Obtient les droits accordés ou refusés par la règle d’accès.

System_CAPS_pubpropertyPropagationFlags

Obtient la valeur des indicateurs de propagation, qui déterminent la façon dont l’héritage de cette règle est propagée aux objets enfants. Cette propriété est significative uniquement lorsque la valeur de l’énumération InheritanceFlags n’est pas None.(Hérité de AuthorizationRule.)

NomDescription
System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

La MutexAccessRule classe est un ensemble de classes que le .NET Framework fournit pour gérer la sécurité de contrôle d’accès Windows sur les mutex système nommé. Pour une vue d’ensemble de ces classes et leur relation avec les structures sous-jacentes de contrôle d’accès Windows, consultez la page MutexSecurity.

System_CAPS_noteRemarque

Sécurité de contrôle d’accès Windows est significative uniquement pour les mutex système nommé. Si un Mutex objet représente un mutex local, le contrôle d’accès n’est pas pertinent.

Pour obtenir une liste de règles en cours sur un mutex nommé, utilisez la Mutex.GetAccessControl méthode pour obtenir un MutexSecurity de l’objet, puis utiliser son GetAccessRules méthode pour obtenir une collection de MutexAccessRule objets.

MutexAccessRule objets ne mappent pas d’entrées de contrôle d’accès dans la sous-jacent liste de contrôle d’accès discrétionnaire (DACL). Lorsque vous obtenez le jeu de toutes les règles d’accès d’un mutex, l’ensemble contient le nombre minimal de règles actuellement requises pour exprimer toutes les entrées de contrôle d’accès.

System_CAPS_noteRemarque

Les entrées de contrôle d’accès sous-jacentes modifié lorsque vous appliquez et supprimez des règles. Les informations dans les règles sont fusionnées si possible, pour maintenir le plus petit nombre d’entrées de contrôle d’accès. Par conséquent, lorsque vous lisez la liste actuelle des règles, il peut ne pas sembler exactement à la liste de toutes les règles que vous avez ajouté.

Utilisez MutexAccessRule pour spécifier les droits d’accès pour autoriser ou refuser à un utilisateur ou un groupe d’objets. Un MutexAccessRule toujours l’objet représente un accès accordé ou refusé d’accès, jamais les deux.

Pour appliquer une règle à un mutex système nommé, utilisez la Mutex.GetAccessControl méthode permettant d’obtenir le MutexSecurity objet. Modifier la MutexSecurity à l’aide de ses méthodes pour ajouter la règle, puis utiliser le Mutex.SetAccessControl méthode pour rattacher l’objet de sécurité.

System_CAPS_importantImportant

Modifications apportées à un MutexSecurity objet n’affectent pas les niveaux d’accès du mutex nommé jusqu'à ce que vous appeliez la Mutex.SetAccessControl méthode d’assigner l’objet de sécurité modifié pour le mutex nommé.

MutexAccessRule les objets sont immuables. Sécurité d’un mutex est modifiée à l’aide des méthodes de la MutexSecurity classe pour ajouter ou supprimer des règles, comme vous le faites, les entrées de contrôle d’accès sous-jacentes sont modifiées.

System_CAPS_noteRemarque

La sécurité sur les objets de synchronisation n’est pas pris en charge pour Windows 98 ou Windows Millennium Edition.

L’exemple de code suivant illustre la création et l’utilisation de MutexAccessRule objets. L’exemple crée un MutexSecurity objet, ajoute des règles qui accordent et refusent divers droits à l’utilisateur actuel et affiche la paire de règles résultante. L’exemple permet de nouveaux droits pour l’utilisateur actuel, puis affiche le résultat, en indiquant que les nouveaux droits sont fusionnés avec le Allow règle.

System_CAPS_noteRemarque

Cet exemple n’attache pas l’objet de sécurité à un Mutex objet. Vous trouverez des exemples qui attachent des objets de sécurité dans Mutex.GetAccessControl et Mutex.SetAccessControl.

using System;
using System.Threading;
using System.Security.AccessControl;
using System.Security.Principal;

public class Example
{
    public static void Main()
    {
        // Create a string representing the current user.
        string user = Environment.UserDomainName + "\\" + 
            Environment.UserName;

        // Create a security object that grants no access.
        MutexSecurity mSec = new MutexSecurity();

        // Add a rule that grants the current user the 
        // right to enter or release the mutex.
        MutexAccessRule rule = new MutexAccessRule(user, 
            MutexRights.Synchronize | MutexRights.Modify, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        // Add a rule that denies the current user the 
        // right to change permissions on the mutex.
        rule = new MutexAccessRule(user, 
            MutexRights.ChangePermissions, 
            AccessControlType.Deny);
        mSec.AddAccessRule(rule);

        // Display the rules in the security object.
        ShowSecurity(mSec);

        // Add a rule that allows the current user the 
        // right to read permissions on the mutex. This rule
        // is merged with the existing Allow rule.
        rule = new MutexAccessRule(user, 
            MutexRights.ReadPermissions, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        ShowSecurity(mSec);
    }

    private static void ShowSecurity(MutexSecurity security)
    {
        Console.WriteLine("\r\nCurrent access rules:\r\n");

        foreach(MutexAccessRule ar in 
            security.GetAccessRules(true, true, typeof(NTAccount)))
        {
            Console.WriteLine("        User: {0}", ar.IdentityReference);
            Console.WriteLine("        Type: {0}", ar.AccessControlType);
            Console.WriteLine("      Rights: {0}", ar.MutexRights);
            Console.WriteLine();
        }
    }
}

/*This code example produces output similar to following:

Current access rules:

        User: TestDomain\TestUser
        Type: Deny
      Rights: ChangePermissions

        User: TestDomain\TestUser
        Type: Allow
      Rights: Modify, Synchronize


Current access rules:

        User: TestDomain\TestUser
        Type: Deny
      Rights: ChangePermissions

        User: TestDomain\TestUser
        Type: Allow
      Rights: Modify, ReadPermissions, Synchronize
 */

.NET Framework
Disponible depuis 2.0

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: