EventWaitHandleAccessRule Klass

Definition

Representerar en uppsättning åtkomsträttigheter som tillåts eller nekas för en användare eller grupp. Det går inte att ärva den här klassen.

public ref class EventWaitHandleAccessRule sealed : System::Security::AccessControl::AccessRule
public sealed class EventWaitHandleAccessRule : System.Security.AccessControl.AccessRule
[System.Security.SecurityCritical]
public sealed class EventWaitHandleAccessRule : System.Security.AccessControl.AccessRule
type EventWaitHandleAccessRule = class
    inherit AccessRule
[<System.Security.SecurityCritical>]
type EventWaitHandleAccessRule = class
    inherit AccessRule
Public NotInheritable Class EventWaitHandleAccessRule
Inherits AccessRule
Arv
EventWaitHandleAccessRule
Attribut

Exempel

Följande kodexempel visar hur objekt skapas och används EventWaitHandleAccessRule . Exemplet skapar ett EventWaitHandleSecurity objekt, lägger till regler som tillåter och nekar olika rättigheter för den aktuella användaren och visar det resulterande regelparet. Exemplet tillåter sedan nya rättigheter för den aktuella användaren och visar resultatet, vilket visar att de nya rättigheterna slås samman med den befintliga Allow regeln.

Note

Det här exemplet bifogar inte säkerhetsobjektet till ett EventWaitHandle objekt. Exempel som bifogar säkerhetsobjekt finns i EventWaitHandle.GetAccessControl och 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
 */
Imports System.Threading
Imports System.Security.AccessControl
Imports System.Security.Principal

Public Class Example

    Public Shared Sub Main()

        ' Create a string representing the current user.
        Dim user As String = Environment.UserDomainName _ 
            & "\" & Environment.UserName

        ' Create a security object that grants no access.
        Dim mSec As New EventWaitHandleSecurity()

        ' Add a rule that grants the current user the 
        ' right to wait on or signal the event.
        Dim rule As New EventWaitHandleAccessRule(user, _
            EventWaitHandleRights.Synchronize _
            Or 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)

    End Sub 

    Private Shared Sub ShowSecurity(ByVal security As EventWaitHandleSecurity)
        Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf)

        For Each ar As EventWaitHandleAccessRule In _
            security.GetAccessRules(True, True, GetType(NTAccount))

            Console.WriteLine("        User: {0}", ar.IdentityReference)
            Console.WriteLine("        Type: {0}", ar.AccessControlType)
            Console.WriteLine("      Rights: {0}", ar.EventWaitHandleRights)
            Console.WriteLine()
        Next

    End Sub
End Class 

'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

Kommentarer

Note

Den här typen stöds bara på Windows.

Klassen EventWaitHandleAccessRule är en av en uppsättning klasser som .NET Framework tillhandahåller för hantering av Windows åtkomstkontrollsäkerhet för namngivna systemhändelser. En översikt över dessa klasser och deras relation till de underliggande Windows åtkomstkontrollstrukturerna finns i EventWaitHandleSecurity.

Note

Windows åtkomstkontrollsäkerhet är endast meningsfullt för namngivna systemhändelser. Om ett EventWaitHandle objekt representerar en lokal händelse är åtkomstkontroll irrelevant.

Om du vill hämta en lista över de regler som för närvarande tillämpas på en namngiven EventWaitHandle.GetAccessControl händelse använder du metoden för att hämta ett EventWaitHandleSecurity objekt och använder sedan dess GetAccessRules metod för att hämta en samling EventWaitHandleAccessRule objekt.

EventWaitHandleAccessRule objekt mappar inte en-till-en med åtkomstkontrollposter i den underliggande diskretionära åtkomstkontrollistan (DACL). När du får uppsättningen med alla åtkomstregler för en händelse innehåller uppsättningen det minsta antal regler som för närvarande krävs för att uttrycka alla åtkomstkontrollposter.

Note

De underliggande åtkomstkontrollposterna ändras när du tillämpar och tar bort regler. Informationen i reglerna sammanfogas om möjligt för att behålla det minsta antalet åtkomstkontrollposter. När du får den aktuella listan med regler kanske det inte ser exakt ut som listan över alla regler som du har lagt till.

Använd EventWaitHandleAccessRule objekt för att ange åtkomsträttigheter för att tillåta eller neka en användare eller grupp. Ett EventWaitHandleAccessRule objekt representerar alltid antingen tillåten åtkomst eller nekad åtkomst, aldrig båda.

Om du vill tillämpa en regel på en namngiven EventWaitHandle.GetAccessControl systemhändelse använder du metoden för att hämta EventWaitHandleSecurity objektet. Ändra objektet EventWaitHandleSecurity med hjälp av dess metoder för att lägga till regeln och använd EventWaitHandle.SetAccessControl sedan metoden för att koppla säkerhetsobjektet igen.

Important

Ändringar du gör i ett EventWaitHandleSecurity objekt påverkar inte åtkomstnivåerna för den namngivna händelsen förrän du anropar EventWaitHandle.SetAccessControl metoden för att tilldela det ändrade säkerhetsobjektet till den namngivna händelsen.

EventWaitHandleAccessRule objekt är oföränderliga. Säkerheten för en händelse ändras med hjälp av klassmetoderna EventWaitHandleSecurity för att lägga till eller ta bort regler. När du gör det ändras de underliggande åtkomstkontrollposterna.

Konstruktorer

Name Description
EventWaitHandleAccessRule(IdentityReference, EventWaitHandleRights, AccessControlType)

Initierar en ny instans av EventWaitHandleAccessRule klassen, anger den användare eller grupp som regeln gäller för, åtkomsträttigheterna och om de angivna åtkomsträttigheterna tillåts eller nekas.

EventWaitHandleAccessRule(String, EventWaitHandleRights, AccessControlType)

Initierar en ny instans av EventWaitHandleAccessRule klassen, anger namnet på den användare eller grupp som regeln gäller för, åtkomsträttigheterna och huruvida de angivna åtkomsträttigheterna tillåts eller nekas.

Egenskaper

Name Description
AccessControlType

Hämtar värdet som AccessControlType är associerat med det här AccessRule objektet.

(Ärvd från AccessRule)
AccessMask

Hämtar åtkomstmasken för den här regeln.

(Ärvd från AuthorizationRule)
EventWaitHandleRights

Hämtar de rättigheter som tillåts eller nekas av åtkomstregeln.

IdentityReference

Hämtar den IdentityReference regel som den här regeln gäller för.

(Ärvd från AuthorizationRule)
InheritanceFlags

Hämtar värdet för flaggor som avgör hur den här regeln ärvs av underordnade objekt.

(Ärvd från AuthorizationRule)
IsInherited

Hämtar ett värde som anger om den här regeln uttryckligen anges eller ärvs från ett överordnat containerobjekt.

(Ärvd från AuthorizationRule)
PropagationFlags

Hämtar värdet för spridningsflaggor som avgör hur arv av den här regeln sprids till underordnade objekt. Den här egenskapen är bara betydande när värdet för InheritanceFlags uppräkningen inte Noneär .

(Ärvd från AuthorizationRule)

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för

Se även