Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

EventWaitHandleSecurity.AddAccessRule-Methode: (EventWaitHandleAccessRule)

 

Veröffentlicht: Oktober 2016

Sucht nach einer übereinstimmenden Zugriffssteuerungsregel, mit dem die neue Regel zusammengeführt werden kann. Wenn keine gefunden wird, fügt die neue Regel hinzu.

Namespace:   System.Security.AccessControl
Assembly:  mscorlib (in mscorlib.dll)

public void AddAccessRule(
	EventWaitHandleAccessRule rule
)

Exception Condition
ArgumentNullException

rule ist null.

Die AddAccessRule -Methode sucht nach Regeln mit demselben Benutzer oder die Gruppe und die gleiche AccessControlType als rule. Wenn keine gefunden wird, rule hinzugefügt wird. Wenn eine übereinstimmende Regel gefunden wird, werden die Rechte in rule werden mit der vorhandenen Regel zusammengeführt.

Im folgenden Codebeispiel wird die Aufteilung Allow Regeln und Deny Regeln und die Kombination der Rechte auf kompatible Regeln anzeigt. Das Beispiel erstellt eine EventWaitHandleSecurity -Objekt, wird von Regeln und Regeln hinzugefügt, die für den aktuellen Benutzer verschiedene Rechte gewähren und verweigern. Anschließend können Sie neue Rechte für den aktuellen Benutzer und das Ergebnis wird angezeigt, dass der neuen Rechte mit dem vorhandenen zusammengeführt werden Allow Regel.

System_CAPS_noteHinweis

In diesem Beispiel wird das Sicherheitsobjekt nicht angefügt ein EventWaitHandle Objekt. Beispiele, die Sicherheitsobjekte angefügt werden, finden Sie EventWaitHandle.GetAccessControl und 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
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: