MutexRights Výčet

Definice

Určuje práva řízení přístupu, která lze použít na pojmenované objekty mutex systému.

Tento výčet podporuje bitové kombinace hodnot jeho členů.

[System.Flags]
public enum MutexRights
[System.Flags]
[System.Security.SecurityCritical]
public enum MutexRights
Dědičnost
MutexRights
Atributy

Pole

Name Hodnota Description
ChangePermissions 262144

Právo změnit pravidla zabezpečení a auditu přidružená k pojmenované mutex.

Delete 65536

Právo odstranit pojmenovaný mutex.

FullControl 2031617

Právo vykonávat plnou kontrolu nad pojmenovaným mutexem a upravovat jeho pravidla přístupu a pravidla auditu.

Modify 1

Právo uvolnit pojmenovaný mutex.

ReadPermissions 131072

Právo otevřít a zkopírovat pravidla přístupu a pravidla auditu pro pojmenovaný mutex.

Synchronize 1048576

Právo čekat na pojmenovaný mutex.

TakeOwnership 524288

Právo změnit vlastníka pojmenovaného mutexu.

Příklady

Následující příklad kódu ukazuje použití MutexRights hodnot při vytváření a používání MutexAccessRule objektů. Příklad vytvoří MutexSecurity objekt, přidá pravidla, která povolují a odmítnou různá práva pro aktuálního uživatele, a zobrazí výslednou dvojici pravidel. Příklad pak povolí nová práva pro aktuálního uživatele a zobrazí výsledek, který ukazuje, že nová práva jsou sloučena s existujícím AccessControlType.Allow pravidlem.

Poznámka

Tento příklad nepřipojuje objekt zabezpečení k objektu Mutex ; viz MutexSecurity, Mutex.GetAccessControl metoda a 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
 */

Poznámky

Pomocí výčtu MutexRights určete práva řízení přístupu při vytváření MutexSecurity objektů. Pokud chcete použít přístupová práva na pojmenovaný systémový mutex, použijte MutexSecurity objekty s konstruktorem Mutex(Boolean, String, Boolean, MutexSecurity) a metodou Mutex.SetAccessControl .

Platí pro

Produkt Verze
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Viz také