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

SemaphoreRights-Enumeration

 

Veröffentlicht: Oktober 2016

Gibt an, die Zugriffsrechte für das Steuerelement angewendet werden können, die mit dem Namen System Semaphore-Objekte.

Diese Enumeration verfügt über ein FlagsAttribute-Attribut, das eine bitweise Kombination der Memberwerte zulässt.

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

[FlagsAttribute]
[ComVisibleAttribute(false)]
public enum SemaphoreRights

MembernameBeschreibung
ChangePermissions

Das Recht, ändern Sie die Sicherheit und ein benanntes Semaphor zugeordneten Überwachungsregeln.

Delete

Das Recht, ein benanntes Semaphor zu löschen.

FullControl

Das Recht, die vollständige Kontrolle über ein benanntes Semaphor, auszuüben, ändern seine Zugriffsregeln und Überwachungsregeln.

Modify

Das Recht, einen benannten Semaphor freizugeben.

ReadPermissions

Das Recht zum Öffnen und kopieren die Zugriffsregeln audit-Regeln für ein benanntes Semaphor.

Synchronize

Das Recht, auf ein benanntes Semaphor zu warten.

TakeOwnership

Das Recht zum Ändern des Besitzers ein benanntes Semaphor.

Verwenden der SemaphoreRights -Enumeration zum Angeben der Zugriffskontrolle Rechte beim Erstellen SemaphoreSecurity Objekte. Um über die Zugriffsrechte für ein benanntes Systemsemaphor anzuwenden, verwenden Sie SemaphoreSecurity Objekte mit der Semaphore.Semaphore(Int32, Int32, String, Boolean, SemaphoreSecurity) Konstruktor und die Semaphore.SetAccessControl Methode.

Die numerischen Werte der zugrunde liegenden Windows-Zugriffsrechte, finden Sie unter Synchronization Object Security and Access Rights (Windows) in der MSDN Library.

System_CAPS_noteHinweis

Sicherheit auf Synchronisierungsobjekte ist für Windows 98 oder Windows Millennium Edition nicht unterstützt.

Das folgende Codebeispiel veranschaulicht die Verwendung von SemaphoreRights Werte beim Erstellen und verwenden SemaphoreAccessRule Objekte. Das Beispiel erstellt eine SemaphoreSecurity -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 AccessControlType.AllowRegel.

System_CAPS_noteHinweis

In diesem Beispiel wird das Sicherheitsobjekt nicht angefügt ein Semaphore Objekt; finden Sie unter SemaphoreSecurity, Semaphore.GetAccessControl -Methode und Semaphore.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.
        SemaphoreSecurity mSec = new SemaphoreSecurity();

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

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

        ShowSecurity(mSec);
    }

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

        foreach(SemaphoreAccessRule 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.SemaphoreRights);
            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: