Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

EventWaitHandleSecurity.ResetAccessRule-Methode

Entfernt alle Zugriffssteuerungsregeln mit demselben Benutzer wie in der angegebenen 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
Typ: System.Security.AccessControl.EventWaitHandleAccessRule
Die zu addierende EventWaitHandleAccessRule. Der von dieser Regel angegebene Benutzer bestimmt die Regeln, die vor dem Hinzufügen dieser Regel entfernt werden sollen.
AusnahmeBedingung
ArgumentNullException

rule ist null.

Wenn keine Zugriffsregeln vorhanden sind, deren Benutzer mit der angegebenen Regel übereinstimmt, wird rule hinzugefügt.

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

Im Beispiel wird ein EventWaitHandleSecurity-Objekt erstellt, und es werden Regeln hinzugefügt, die dem aktuellen Benutzer verschiedene Rechte gewähren und verweigern. Anschließend wird im Beispiel eine neue Regel erstellt, die dem aktuellen Benutzer die uneingeschränkte Kontrolle zuweist, und mithilfe der ResetAccessRule-Methode werden beide vorhandenen Regeln durch die neue Regel ersetzt.

HinweisHinweis

In diesem Beispiel wird das Sicherheitsobjekt nicht an ein EventWaitHandle-Objekt angefügt. Beispiele, in denen Sicherheitsobjekte angefügt werden, finden Sie unter 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

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.