(0) exportieren Drucken
Alle erweitern
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.

MutexAccessRule-Konstruktor (String, MutexRights, AccessControlType)

Initialisiert eine neue Instanz der MutexAccessRule-Klasse und gibt den Namen des Benutzers oder der Gruppe an, für den bzw. die die Regel gilt, sowie die Zugriffsrechte. Außerdem wird angegeben, ob die angegebenen Zugriffsrechte gewährt oder verweigert werden.

Namespace:  System.Security.AccessControl
Assembly:  mscorlib (in mscorlib.dll)
public MutexAccessRule(
	string identity,
	MutexRights eventRights,
	AccessControlType type
)

Parameter

identity
Typ: System.String
Der Name des Benutzers oder der Gruppe, für den bzw. die die Regel gilt.
eventRights
Typ: System.Security.AccessControl.MutexRights
Eine bitweise Kombination von MutexRights-Werten, mit der angegeben wird, ob die Rechte gewährt oder verweigert werden.
type
Typ: System.Security.AccessControl.AccessControlType
Einer der AccessControlType-Werte, mit denen angegeben wird, ob die Rechte gewährt oder verweigert werden.
AusnahmeBedingung
ArgumentOutOfRangeException

eventRights gibt einen ungültigen Wert an.

- oder -

type gibt einen ungültigen Wert an.

ArgumentNullException

eventRights ist 0.

ArgumentException

identity ist null.

- oder -

identity ist eine Zeichenfolge der Länge 0 (null).

- oder -

identity ist länger als 512 Zeichen.

Benutzer können auf ein Mutex warten (indem Sie die MethodeWaitOne, WaitAny oder WaitAll aufrufen), wenn sie über MutexRights.Synchronize-Zugriff verfügen. Benutzer können den Mutex durch Aufrufen der ReleaseMutex-Methode freigeben, wenn sie über MutexRights.Modify-Zugriff verfügen.

Dieser Konstruktor ist mit dem Erstellen eines NTAccount-Objekts äquivalent, indem identity an den NTAccount.NTAccount(String) Konstruktor und das neu erstellte NTAccount-Objekt an den MutexAccessRule(IdentityReference, MutexRights, AccessControlType) Konstruktor übergeben wird.

Im folgenden Codebeispiel wird die Verwendung dieses Konstruktors veranschaulicht, um MutexAccessRule-Objekte zu erstellen. Im Beispiel wird ein MutexSecurity-Objekt erstellt. Außerdem werden Regeln hinzugefügt, die dem aktuellen Benutzer eine Reihe von Rechten gewähren und verweigern, und das erhaltene Regelpaar wird angezeigt. Anschließend werden dem aktuellen Benutzer im Beispiel neue Rechte gewährt und das Ergebnis wird angezeigt, das die Zusammenführung der neuen Rechte mit der vorhandenen Allow-Regel darstellt.

HinweisHinweis

In diesem Beispiel wird das Sicherheitsobjekt nicht an ein Mutex-Objekt angefügt. Beispiele, in denen Sicherheitsobjekte angefügt werden, finden Sie unter Mutex.GetAccessControl und Mutex.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.
        MutexSecurity mSec = new MutexSecurity();

        // Add a rule that grants the current user the 
        // right to enter or release the mutex.
        MutexAccessRule rule = new MutexAccessRule(user, 
            MutexRights.Synchronize | MutexRights.Modify, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        // Add a rule that denies the current user the 
        // right to change permissions on the mutex.
        rule = new MutexAccessRule(user, 
            MutexRights.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 mutex. This rule
        // is merged with the existing Allow rule.
        rule = new MutexAccessRule(user, 
            MutexRights.ReadPermissions, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        ShowSecurity(mSec);
    }

    private static void ShowSecurity(MutexSecurity security)
    {
        Console.WriteLine("\r\nCurrent access rules:\r\n");

        foreach(MutexAccessRule 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.MutexRights);
            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

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.1, Windows Server 2012 R2, 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)

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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.