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 EventWaitHandleRights

 

Publicado: octubre de 2016

Especifica los derechos de control de acceso que pueden aplicarse a los objetos de evento 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 EventWaitHandleRights

Nombre de miembroDescripción
ChangePermissions

El derecho a cambiar la seguridad y auditoría asociadas a un evento con nombre.

Delete

El derecho de eliminar un evento con nombre.

FullControl

El derecho a ejercer el control completo sobre un evento con nombre y para modificar las reglas de acceso y de auditoría.

Modify

El derecho a establecer o restablecer el estado señalado de un evento con nombre.

ReadPermissions

Reglas de la derecha para abrir y copiar las reglas de acceso y auditoría para un evento con nombre.

Synchronize

El derecho a esperar en un evento con nombre.

TakeOwnership

El derecho a cambiar el propietario de un evento con nombre.

Utilice la EventWaitHandleRights de derechos de enumeración para especificar el control de acceso al crear EventWaitHandleAccessRule objetos. Para aplicar derechos de acceso a un evento del sistema con nombre, primero agregue EventWaitHandleAccessRule objetos a un EventWaitHandleSecurity de objeto, a continuación, adjuntar la EventWaitHandleSecurity objeto en los eventos de sistema con nombre mediante el EventWaitHandle.EventWaitHandle(Boolean, EventResetMode, String, Boolean, EventWaitHandleSecurity) constructor o el EventWaitHandle.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 EventWaitHandleRights valores al crear y usar EventWaitHandleAccessRule objetos. El ejemplo se crea un EventWaitHandleSecurity 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 EventWaitHandle objeto; vea EventWaitHandleSecurity, EventWaitHandle.GetAccessControl (método), y EventWaitHandle.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.
        EventWaitHandleSecurity mSec = new EventWaitHandleSecurity();

        // Add a rule that grants the current user the 
        // right to wait on or signal the event.
        EventWaitHandleAccessRule rule = new EventWaitHandleAccessRule(user, 
            EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        // Add a rule that denies the current user the 
        // right to change permissions on the event.
        rule = new EventWaitHandleAccessRule(user, 
            EventWaitHandleRights.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 event. This rule
        // is merged with the existing Allow rule.
        rule = new EventWaitHandleAccessRule(user, 
            EventWaitHandleRights.ReadPermissions, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        ShowSecurity(mSec);
    }

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

        foreach(EventWaitHandleAccessRule 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.EventWaitHandleRights);
            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: