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

 

Veröffentlicht: Oktober 2016

Entfernt alle Zugriffssteuerungsregeln mit demselben Benutzer wie die angegebene Regel unabhängig von AccessControlType, und fügt anschließend die angegebene Regel hinzu.

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

public void ResetAccessRule(
	EventWaitHandleAccessRule rule
)

Parameter

rule
Type: System.Security.AccessControl.EventWaitHandleAccessRule

Das hinzuzufügende EventWaitHandleAccessRule. Von dieser Regel angegebene Benutzer bestimmt die Regeln entfernen, bevor diese Regel hinzugefügt wird.

Exception Condition
ArgumentNullException

rule ist null.

Es sind keine Regeln, deren Benutzer mit der angegebene Regel übereinstimmt rule hinzugefügt wird.

Im folgenden Codebeispiel wird veranschaulicht wie die ResetAccessRule Methode alle Regeln für den übereinstimmenden Benutzer durch die für die Übereinstimmung angegebenen Regel ersetzt.

Das Beispiel erstellt ein EventWaitHandleSecurity -Objekt und fügt die Regeln, die für den aktuellen Benutzer verschiedene Rechte gewähren und verweigern. Das Beispiel erstellt dann eine neue Regel, die dem aktuellen Benutzer die vollständige Kontrolle, und mithilfe der ResetAccessRule -Methode werden beide vorhandenen Regeln durch die neue Regel ersetzt.

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 full control over the event. Use the
        // ResetAccessRule method to replace both of 
        // the existing rules with the new rule. 
        rule = new EventWaitHandleAccessRule(user,
            EventWaitHandleRights.FullControl,
            AccessControlType.Allow);
        mSec.ResetAccessRule(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: Allow
      Rights: FullControl
 */

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