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.RemoveAccessRule-Methode: (EventWaitHandleAccessRule)

 

Veröffentlicht: Oktober 2016

Sucht nach einer Zugriffssteuerungsregel mit demselben Benutzer und AccessControlType (zulassen oder verweigern) als die angegebene Regel, und mit kompatiblen Weitergabeflags für Vererbung und; wenn eine solche Regel gefunden wird, die Rechte in der angegebenen Zugriffsregel aus entfernt es.

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

public bool RemoveAccessRule(
	EventWaitHandleAccessRule rule
)

Parameter

rule
Type: System.Security.AccessControl.EventWaitHandleAccessRule

Eine EventWaitHandleAccessRule die den Benutzer angibt und AccessControlType Durchsuchen und einen Satz von Flags für Vererbung und Weitergabe, die eine entsprechende Regel, wenn gefunden, die mit kompatibel sein müssen. Gibt an, dass die Rechte, die aus der kompatiblen Regel entfernt werden sollen, wenn vorhanden.

Rückgabewert

Type: System.Boolean

true Wenn eine kompatible Regel gefunden wurde. andernfalls false.

Exception Condition
ArgumentNullException

rule ist null.

Die aktuelle EventWaitHandleSecurity für eine Regel mit demselben Benutzer und demselben durchsucht AccessControlType Wert als rule. Wenn keine derartige Regel gefunden wird, wird keine Aktion ausgeführt, und die Methode gibt false. Wenn übereinstimmende Regeln gefunden werden, werden die Flags für Vererbung und Kompatibilität für die Kompatibilität mit dem in angegebenen Flags überprüft rule. Wenn keine kompatible Regel gefunden wird, wird keine Aktion ausgeführt, und die Methode gibt false. Wenn eine Regel mit kompatiblen Flags gefunden wird, wird die Rechte im angegebenen rule werden aus der kompatiblen Regel entfernt und die Methode gibt true. Wenn rule gibt Rechte, die nicht in der kompatiblen Regel enthalten sind, in Bezug auf diese Rechte wird keine Aktion ausgeführt. Wenn alle Rechte aus der kompatiblen Regel entfernt werden, wird die ganze Regel aus dem aktuellen entfernt EventWaitHandleSecurity Objekt.

System_CAPS_importantWichtig

Obwohl Sie die Flags für Vererbung und Weitergabe für Ereignis-Zugriffsregeln angeben können, erstellen sie mit der AccessRuleFactory -Methode, dies wird nicht empfohlen. Vererbung und Weitergabe sind für benannte Ereignisse bedeutungslos, und sie machen die Verwaltung der Zugriffsregeln nur komplizierter.

Das folgende Codebeispiel veranschaulicht die Verwendung von der RemoveAccessRule -Methode zum Entfernen von Berechtigungen zu einer Allow -Regel in ein EventWaitHandleSecurity Objekt. Es zeigt auch, dass andere Rechte in rule werden ignoriert.

Das Beispiel erstellt ein EventWaitHandleSecurity -Objekt und fügt die Regeln, die für den aktuellen Benutzer verschiedene Rechte gewähren und verweigern. Die Rechte gewährt: Modify, ReadPermissions, und Synchronize. Das Beispiel erstellt dann eine neue Regel für den aktuellen Benutzer, einschließlich ReadPermissions und TakeOwnership Rechte, und mithilfe der Regel mit der RemoveAccessRule -Methode zum Entfernen von ReadPermissions aus der Allow -Regel in der EventWaitHandleSecurity Objekt. Die TakeOwnership mit der rechten Maustaste im rule wird ignoriert.

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 and read the
        // permissions on the event.
        EventWaitHandleAccessRule rule = new EventWaitHandleAccessRule(user, 
            EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify
                | EventWaitHandleRights.ReadPermissions, 
            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);

        // Create a rule that grants the current user 
        // the right to read permissions on the event, and
        // take ownership of the event. Use this rule to 
        // remove the right to read permissions from the 
        // Allow rule for the current user. The inclusion 
        // of the right to take ownership has no effect.
        rule = new EventWaitHandleAccessRule(user, 
            EventWaitHandleRights.TakeOwnership | 
                EventWaitHandleRights.ReadPermissions, 
            AccessControlType.Allow);
        mSec.RemoveAccessRule(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, ReadPermissions, Synchronize


Current access rules:

        User: TestDomain\TestUser
        Type: Deny
      Rights: ChangePermissions

        User: TestDomain\TestUser
        Type: Allow
      Rights: Modify, Synchronize
 */

.NET Framework
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: