Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

MutexAccessRule, classe

Représente un jeu de droits d'accès accordés ou refusés à 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

Le type MutexAccessRule expose les membres suivants.

  NomDescription
Méthode publiqueMutexAccessRule(IdentityReference, MutexRights, AccessControlType)Initialise une nouvelle instance de la classe MutexAccessRule, en spécifiant l'utilisateur ou le groupe auquel la règle s'applique, les droits d'accès, et si les droits d'accès spécifiés sont accordés ou refusés.
Méthode publiqueMutexAccessRule(String, MutexRights, AccessControlType)Initialise une nouvelle instance de la classe MutexAccessRule, en spécifiant le nom de l'utilisateur ou du groupe auquel la règle s'applique, les droits d'accès, et si les droits d'accès spécifiés sont autorisés ou refusés.
Début

  NomDescription
Propriété publiqueAccessControlTypeObtient la valeur AccessControlType associée à cet objet AccessRule. (Hérité de AccessRule.)
Propriété protégéeAccessMaskObtient le masque d'accès de cette règle. (Hérité de AuthorizationRule.)
Propriété publiqueIdentityReferenceObtient IdentityReference auquel cette règle s'applique. (Hérité de AuthorizationRule.)
Propriété publiqueInheritanceFlagsObtient la valeur des indicateurs qui déterminent la façon dont les objets enfants héritent de cette règle. (Hérité de AuthorizationRule.)
Propriété publiqueIsInheritedObtient une valeur qui indique si cette règle est établie explicitement ou si elle est héritée d'un objet conteneur parent. (Hérité de AuthorizationRule.)
Propriété publiqueMutexRightsObtient les droits accordés ou refusés par la règle d'accès.
Propriété publiquePropagationFlagsObtient la valeur des indicateurs de propagation, qui déterminent la façon dont l'héritage de cette règle se propage aux objets enfants. Cette propriété n'a de lieu d'être que si la valeur de l'énumération InheritanceFlags n'est pas None. (Hérité de AuthorizationRule.)
Début

  NomDescription
Méthode publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode publiqueGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actif. (Hérité de Object.)
Début

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

RemarqueRemarque

La sécurité du contrôle d'accès Windows n'est utile que pour les mutex système nommés. Si un objet Mutex représente un mutex local, le contrôle d'accès n'a pas lieu d'être.

Pour obtenir une liste des règles en cours sur un mutex nommé, utilisez la méthode Mutex.GetAccessControl pour obtenir un objet MutexSecurity, puis utilisez sa méthode GetAccessRules pour obtenir une collection d'objets MutexAccessRule.

Les objets MutexAccessRule ne se mappent pas un à un aux entrées du contrôle d'accès se trouvant dans la liste de contrôle d'accès discrétionnaire sous-jacente. Lorsque vous obtenez le jeu de toutes les règles d'accès d'un mutex, il contient le nombre minimal de règles actuellement requises pour exprimer toutes les entrées du contrôle d'accès.

RemarqueRemarque

Les entrées sous-jacentes du contrôle d'accès changent lorsque vous appliquez et supprimez des règles. Les informations des règles sont fusionnées si possible pour conserver le nombre d'entrées du contrôle d'accès à son minimum. Par conséquent, lorsque vous lisez la liste de règles en cours, elle ne ressemble pas forcément exactement à la liste de toutes les règles que vous avez ajoutées.

Utilisez des objets MutexAccessRule pour spécifier des droits d'accès autorisés ou refusés à un utilisateur ou à un groupe. Un objet MutexAccessRule représente toujours un accès autorisé ou un accès refusé, jamais les deux à la fois.

Pour appliquer une règle à un mutex système nommé, utilisez la méthode Mutex.GetAccessControl pour obtenir l'objet MutexSecurity. Modifiez l'objet MutexSecurity en utilisant ses méthodes pour ajouter la règle, puis utilisez la méthode Mutex.SetAccessControl pour rattacher l'objet de sécurité.

Remarque importanteImportant

Les modifications que vous apportez à un objet MutexSecurity n'affectent pas les niveaux d'accès du mutex nommé tant que vous n'appelez pas la méthode Mutex.SetAccessControl pour assigner à ce mutex l'objet de sécurité modifié.

Les objets MutexAccessRule sont immuables. La sécurité d'un mutex est modifiée à l'aide des méthodes de la classe MutexSecurity, qui ajoutent ou suppriment des règles ; pendant vos modifications, les entrées sous-jacentes du contrôle d'accès se modifient également.

RemarqueRemarque

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

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

RemarqueRemarque

Cet exemple n'attache pas l'objet de sécurité à un objet Mutex. Des exemples qui attachent des objets de sécurité se trouvent 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

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft