EventWaitHandleAccessRule Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- 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) |