Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

MutexRights (Enumeración)

Especifica los derechos de control de acceso que se pueden aplicar 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 los valores de miembro.

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

[FlagsAttribute]
public enum MutexRights

Nombre de miembroDescripción
ChangePermissionsDerecho para cambiar la seguridad y las reglas de auditoría asociadas a una exclusión mutua con nombre.
DeleteDerecho para eliminar una exclusión mutua con nombre.
FullControlDerecho para ejercer el control total sobre una exclusión mutua con nombre y modificar sus reglas de acceso y de auditoría.
ModifyDerecho para liberar una exclusión mutua con nombre.
ReadPermissionsDerecho para abrir y copiar las reglas de acceso y de auditoría de una exclusión mutua con nombre.
SynchronizeDerecho para esperar en una exclusión mutua con nombre.
TakeOwnershipDerecho para cambiar el propietario de una exclusión mutua con nombre.

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

NotaNota

La seguridad en objetos de sincronización no es compatible con Windows 98 ni Windows Millennium Edition.

En el ejemplo de código siguiente se muestra el uso de los valores de MutexRights cuando se crean y utilizan objetos MutexAccessRule. En el ejemplo se crea un objeto MutexSecurity, 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 se presenta el resultado, que muestra cómo se han combinado los nuevos derechos con la regla AccessControlType.Allow existente.

NotaNota

En este ejemplo no se adjunta el objeto de seguridad a un objeto Mutex; vea la clase MutexSecurity, el método Mutex.GetAccessControl 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

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 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 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft