Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Enumeración MutexRights

 

Publicado: octubre de 2016

Especifica los derechos de control de acceso que pueden aplicarse a los objetos de exclusión mutua de sistema con nombre.

Esta enumeración tiene un atributo FlagsAttribute que permite una combinación bit a bit de sus valores de miembro.

Espacio de nombres:   System.Security.AccessControl
Ensamblado:  mscorlib (en mscorlib.dll)

[FlagsAttribute]
public enum MutexRights

Nombre de miembroDescripción
ChangePermissions

El derecho a cambiar la seguridad y auditoría asociadas a una exclusión mutua con nombre.

Delete

El derecho para eliminar una exclusión mutua con nombre.

FullControl

El derecho para ejercer control total sobre una exclusión mutua con nombre y para modificar las reglas de acceso y las reglas de auditoría.

Modify

Derecho para liberar una exclusión mutua con nombre.

ReadPermissions

Reglas de la derecha para abrir y copiar las reglas de acceso y de auditoría para una exclusión mutua con nombre.

Synchronize

El derecho a esperar en una exclusión mutua con nombre.

TakeOwnership

El derecho a cambiar el propietario de una exclusión mutua con nombre.

Utilice la MutexRights de derechos de enumeración para especificar el control de acceso al crear MutexSecurity objetos. Para aplicar derechos de acceso para una exclusión mutua del sistema con nombre, utilice MutexSecurity objetos con el Mutex(Boolean, String, Boolean, MutexSecurity) constructor y Mutex.SetAccessControl (método).

System_CAPS_noteNota

No se admite la seguridad en objetos de sincronización de Windows 98 o Windows Millennium Edition.

En el ejemplo de código siguiente se muestra el uso de MutexRights valores al crear y usar MutexAccessRule objetos. El ejemplo se crea un MutexSecurity objeto, se agregan reglas que conceden y deniegan diferentes derechos al usuario actual y se muestra el par de reglas resultante. A continuación se conceden nuevos derechos al usuario actual y muestra el resultado, que muestra que los nuevos derechos se combinan con los valores existentes AccessControlType.Allowregla.

System_CAPS_noteNota

Este ejemplo no adjunta el objeto de seguridad a un Mutex objeto; vea MutexSecurity, Mutex.GetAccessControl (método), y 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 desde 2.0
Volver al principio
Mostrar: