SemaphoreAccessRule Construtores

Definição

Inicializa uma nova instância da classe SemaphoreAccessRule.Initializes a new instance of the SemaphoreAccessRule class.

Sobrecargas

SemaphoreAccessRule(IdentityReference, SemaphoreRights, AccessControlType)

Inicializa uma nova instância da classe SemaphoreAccessRule, especificando o usuário ou grupo ao qual a regra se aplica, os direitos de acesso e se estes são permitidos ou negados.Initializes a new instance of the SemaphoreAccessRule class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied.

SemaphoreAccessRule(String, SemaphoreRights, AccessControlType)

Inicializa uma nova instância da classe SemaphoreAccessRule, especificando o nome do usuário ou do grupo ao qual a regra se aplica, os direitos de acesso e se eles são permitidos ou negados.Initializes a new instance of the SemaphoreAccessRule class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied.

SemaphoreAccessRule(IdentityReference, SemaphoreRights, AccessControlType)

Inicializa uma nova instância da classe SemaphoreAccessRule, especificando o usuário ou grupo ao qual a regra se aplica, os direitos de acesso e se estes são permitidos ou negados.Initializes a new instance of the SemaphoreAccessRule class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied.

public:
 SemaphoreAccessRule(System::Security::Principal::IdentityReference ^ identity, System::Security::AccessControl::SemaphoreRights eventRights, System::Security::AccessControl::AccessControlType type);
public SemaphoreAccessRule (System.Security.Principal.IdentityReference identity, System.Security.AccessControl.SemaphoreRights eventRights, System.Security.AccessControl.AccessControlType type);
new System.Security.AccessControl.SemaphoreAccessRule : System.Security.Principal.IdentityReference * System.Security.AccessControl.SemaphoreRights * System.Security.AccessControl.AccessControlType -> System.Security.AccessControl.SemaphoreAccessRule
Public Sub New (identity As IdentityReference, eventRights As SemaphoreRights, type As AccessControlType)

Parâmetros

identity
IdentityReference

O usuário ou grupo ao qual a regra se aplica.The user or group the rule applies to. Deve ser do tipo SecurityIdentifier ou um tipo como NTAccount que pode ser convertido para o tipo SecurityIdentifier.Must be of type SecurityIdentifier or a type such as NTAccount that can be converted to type SecurityIdentifier.

eventRights
SemaphoreRights

Uma combinação bit a bit de valores SemaphoreRights que especificam os direitos permitidos ou negados.A bitwise combination of SemaphoreRights values specifying the rights allowed or denied.

type
AccessControlType

Um dos valores AccessControlType que especificam se os direitos são permitidos ou negados.One of the AccessControlType values specifying whether the rights are allowed or denied.

Exceções

eventRights especifica um valor inválido.eventRights specifies an invalid value.

- ou --or- type especifica um valor inválido.type specifies an invalid value.

identity é null.identity is null.

- ou --or- eventRights é zero.eventRights is zero.

identity não é do tipo SecurityIdentifier nem de um tipo como NTAccount que pode ser convertido para o tipo SecurityIdentifier.identity is neither of type SecurityIdentifier nor of a type such as NTAccount that can be converted to type SecurityIdentifier.

Comentários

Para inserir um Semaphore , por exemplo, chamando o WaitOne método, um usuário deve ter SemaphoreRights.Synchronize acesso.To enter a Semaphore, for example by calling the WaitOne method, a user must have SemaphoreRights.Synchronize access. Para sair do semáforo, chamando o Release método, o usuário deve ter SemaphoreRights.Modify acesso.To exit the semaphore, by calling the Release method, the user must have SemaphoreRights.Modify access.

Aplica-se a

SemaphoreAccessRule(String, SemaphoreRights, AccessControlType)

Inicializa uma nova instância da classe SemaphoreAccessRule, especificando o nome do usuário ou do grupo ao qual a regra se aplica, os direitos de acesso e se eles são permitidos ou negados.Initializes a new instance of the SemaphoreAccessRule class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied.

public:
 SemaphoreAccessRule(System::String ^ identity, System::Security::AccessControl::SemaphoreRights eventRights, System::Security::AccessControl::AccessControlType type);
public SemaphoreAccessRule (string identity, System.Security.AccessControl.SemaphoreRights eventRights, System.Security.AccessControl.AccessControlType type);
new System.Security.AccessControl.SemaphoreAccessRule : string * System.Security.AccessControl.SemaphoreRights * System.Security.AccessControl.AccessControlType -> System.Security.AccessControl.SemaphoreAccessRule
Public Sub New (identity As String, eventRights As SemaphoreRights, type As AccessControlType)

Parâmetros

identity
String

O nome do usuário ou grupo ao qual a regra se aplica.The name of the user or group the rule applies to.

eventRights
SemaphoreRights

Uma combinação bit a bit de valores SemaphoreRights que especificam os direitos permitidos ou negados.A bitwise combination of SemaphoreRights values specifying the rights allowed or denied.

type
AccessControlType

Um dos valores AccessControlType que especificam se os direitos são permitidos ou negados.One of the AccessControlType values specifying whether the rights are allowed or denied.

Exceções

eventRights especifica um valor inválido.eventRights specifies an invalid value.

- ou --or- type especifica um valor inválido.type specifies an invalid value.

eventRights é zero.eventRights is zero.

identity é null.identity is null.

- ou --or- identity é uma cadeia de comprimento zero.identity is a zero-length string.

- ou --or- identity tem mais de 512 caracteres.identity is longer than 512 characters.

Exemplos

O exemplo de código a seguir demonstra o uso desse construtor para criar SemaphoreAccessRule objetos.The following code example demonstrates the use of this constructor to create SemaphoreAccessRule objects. O exemplo cria um SemaphoreSecurity objeto, adiciona regras que permitem e negam vários direitos para o usuário atual e exibe o par de regras resultante.The example creates a SemaphoreSecurity object, adds rules that allow and deny various rights for the current user, and displays the resulting pair of rules. Em seguida, o exemplo permite novos direitos para o usuário atual e exibe o resultado, mostrando que os novos direitos são mesclados com a Allow regra existente.The example then allows new rights for the current user and displays the result, showing that the new rights are merged with the existing Allow rule.

Observação

Este exemplo não anexa o objeto de segurança a um Semaphore objeto.This example does not attach the security object to a Semaphore object. Exemplos que anexam objetos de segurança podem ser encontrados em Semaphore.GetAccessControl e Semaphore.SetAccessControl .Examples that attach security objects can be found in Semaphore.GetAccessControl and 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
 */
Imports System.Threading
Imports System.Security.AccessControl
Imports System.Security.Principal

Public Class Example

    Public Shared Sub Main()

        ' Create a string representing the current user.
        Dim user As String = Environment.UserDomainName _ 
            & "\" & Environment.UserName

        ' Create a security object that grants no access.
        Dim mSec As New SemaphoreSecurity()

        ' Add a rule that grants the current user the 
        ' right to enter or release the semaphore.
        Dim rule As New SemaphoreAccessRule(user, _
            SemaphoreRights.Synchronize _
            Or 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)

    End Sub 

    Private Shared Sub ShowSecurity(ByVal security As SemaphoreSecurity)
        Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf)

        For Each ar As SemaphoreAccessRule In _
            security.GetAccessRules(True, True, GetType(NTAccount))

            Console.WriteLine("        User: {0}", ar.IdentityReference)
            Console.WriteLine("        Type: {0}", ar.AccessControlType)
            Console.WriteLine("      Rights: {0}", ar.SemaphoreRights)
            Console.WriteLine()
        Next

    End Sub
End Class 

'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

Comentários

Para inserir um Semaphore , por exemplo, chamando o WaitOne método, um usuário deve ter SemaphoreRights.Synchronize acesso.To enter a Semaphore, for example by calling the WaitOne method, a user must have SemaphoreRights.Synchronize access. Para sair do semáforo, chamando o Release método, o usuário deve ter SemaphoreRights.Modify acesso.To exit the semaphore, by calling the Release method, the user must have SemaphoreRights.Modify access.

Esse construtor é equivalente a criar um NTAccount objeto, passando identity para o NTAccount.NTAccount(String) Construtor e passando o NTAccount objeto recém-criado para o SemaphoreAccessRule(IdentityReference, SemaphoreRights, AccessControlType) Construtor.This constructor is equivalent to creating an NTAccount object, by passing identity to the NTAccount.NTAccount(String) constructor, and passing the newly created NTAccount object to the SemaphoreAccessRule(IdentityReference, SemaphoreRights, AccessControlType) constructor.

Aplica-se a