SemaphoreSecurity Classe

Definição

Representa a segurança do controlo de acesso Windows para um semáforo nomeado. Esta classe não pode ser herdada.

public ref class SemaphoreSecurity sealed : System::Security::AccessControl::NativeObjectSecurity
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class SemaphoreSecurity : System.Security.AccessControl.NativeObjectSecurity
[<System.Runtime.InteropServices.ComVisible(false)>]
type SemaphoreSecurity = class
    inherit NativeObjectSecurity
Public NotInheritable Class SemaphoreSecurity
Inherits NativeObjectSecurity
Herança
Atributos

Exemplos

O exemplo de código seguinte demonstra a separação entre Allow regras e Deny regras, e mostra a combinação de direitos em regras compatíveis. O exemplo cria um SemaphoreSecurity objeto, adiciona regras que permitem e negam vários direitos ao utilizador atual e mostra o par de regras resultante. O exemplo permite então novos direitos para o utilizador atual e mostra o resultado, mostrando que os novos direitos estão fundidos com a regra existente Allow .

Note

Este exemplo não associa o objeto de segurança a um Semaphore objeto. Exemplos que anexam objetos de segurança podem ser encontrados em Semaphore.GetAccessControl e 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

Observações

Note

Este tipo só é suportado no Windows.

Um objeto especifica direitos de acesso para um semáforo de sistema nomeado, e também especifica como as SemaphoreSecurity tentativas de acesso são auditadas. Os direitos de acesso ao semáforo são expressos como regras, com cada regra de acesso representada por um SemaphoreAccessRule objeto. Cada regra de auditoria é representada por um SemaphoreAuditRule objeto.

Isto espelha o sistema de segurança Windows subjacente, no qual cada objeto seguro tem, no máximo, uma lista de controlo de acesso discricionária (DACL) que controla o acesso ao objeto protegido, e no máximo uma lista de controlo de acesso ao sistema (SACL) que especifica quais as tentativas de acesso auditadas. O DACL e o SACL são listas ordenadas de entradas de controlo de acesso (ACE) que especificam acesso e auditoria para utilizadores e grupos. Um SemaphoreAccessRule objeto ou SemaphoreAuditRule pode representar mais do que um ACE.

Note

Um Semaphore objeto pode representar um semáforo local ou um semáforo de sistema nomeado. A segurança do controlo de acesso do Windows é relevante apenas para semáforos de sistema nomeados.

As SemaphoreSecurityclasses , SemaphoreAccessRule, e SemaphoreAuditRule escondem os detalhes de implementação das ACLs e ACEs. Permitem-lhe ignorar os dezassete tipos diferentes de ACE e a complexidade de manter corretamente a herança e propagação dos direitos de acesso. Estes objetos são também concebidos para evitar os seguintes erros comuns de controlo de acesso:

  • Criar um descritor de segurança com um DACL nulo. Uma referência nula a um DACL permite a qualquer utilizador adicionar regras de acesso a um objeto, podendo criar um ataque de negação de serviço. Um novo SemaphoreSecurity objeto começa sempre com um DACL vazio, que nega todo o acesso a todos os utilizadores.

  • Violar a ordem canónica dos ACEs. Se a lista ACE no DACL não for mantida na ordem canónica, os utilizadores podem, inadvertidamente, ter acesso ao objeto protegido. Por exemplo, direitos de acesso negados devem sempre aparecer antes dos direitos de acesso permitidos. SemaphoreSecurity os objetos mantêm a ordem correta internamente.

  • Manipulação de flags de descritores de segurança, que devem estar apenas sob controlo do gestor de recursos.

  • Criar combinações inválidas de flags ACE.

  • Manipular ASES herdados. A herança e propagação são tratadas pelo gestor de recursos, em resposta às alterações que faz nas regras de acesso e auditoria.

  • Inserir ACEs sem significado em ACLs.

As únicas capacidades não suportadas pelos objetos de segurança .NET são atividades perigosas que devem ser evitadas pela maioria dos programadores de aplicações, tais como as seguintes:

  • Tarefas de baixo nível normalmente realizadas pelo gestor de recursos.

  • Adicionar ou remover entradas de controlo de acesso de formas que não mantêm a ordem canónica.

Para modificar Windows segurança de controlo de acesso para um semáforo nomeado, use o método Semaphore.GetAccessControl para obter o objeto SemaphoreSecurity. Modifica o objeto de segurança adicionando e removendo regras, e depois usa o Semaphore.SetAccessControl método para o reanexar.

Importante

As alterações que faz a um SemaphoreSecurity objeto não afetam os níveis de acesso do semáforo nomeado até chamar o Semaphore.SetAccessControl método para atribuir o objeto de segurança alterado ao semáforo nomeado.

Para copiar a segurança do controlo de acesso de um semáforo para outro, use o Semaphore.GetAccessControl método para obter um SemaphoreSecurity objeto que represente as regras de acesso e auditoria do primeiro semáforo, depois use o Semaphore.SetAccessControl método, ou um construtor que aceite um SemaphoreSecurity objeto, para atribuir essas regras ao segundo semáforo.

Utilizadores com investimento na linguagem de definição de descritores de segurança (SDDL) podem usar o SetSecurityDescriptorSddlForm método para definir regras de acesso para um semáforo nomeado, e o GetSecurityDescriptorSddlForm método para obter uma cadeia que representa as regras de acesso em formato SDDL. Isto não é recomendado para novos desenvolvimentos.

Construtores

Name Description
SemaphoreSecurity()

Inicializa uma nova instância da SemaphoreSecurity classe com valores por defeito.

SemaphoreSecurity(String, AccessControlSections)

Inicializa uma nova instância da SemaphoreSecurity classe com as secções especificadas das regras de segurança de controlo de acesso a partir do semáforo do sistema com o nome especificado.

Propriedades

Name Description
AccessRightType

Obtém a enumeração que a SemaphoreSecurity classe usa para representar direitos de acesso.

AccessRulesModified

Recebe ou define um valor booleano que especifica se as regras de acesso associadas a este ObjectSecurity objeto foram modificadas.

(Herdado de ObjectSecurity)
AccessRuleType

Obtém o tipo que a SemaphoreSecurity classe usa para representar regras de acesso.

AreAccessRulesCanonical

Obtém um valor booleano que especifica se as regras de acesso associadas a este ObjectSecurity objeto estão em ordem canónica.

(Herdado de ObjectSecurity)
AreAccessRulesProtected

Recebe um valor booleano que especifica se a Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto ObjectSecurity está protegida.

(Herdado de ObjectSecurity)
AreAuditRulesCanonical

Obtém um valor booleano que especifica se as regras de auditoria associadas a este ObjectSecurity objeto estão em ordem canónica.

(Herdado de ObjectSecurity)
AreAuditRulesProtected

Obtém um valor booleano que especifica se a Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto ObjectSecurity está protegida.

(Herdado de ObjectSecurity)
AuditRulesModified

Recebe ou define um valor booleano que especifica se as regras de auditoria associadas a este ObjectSecurity objeto foram modificadas.

(Herdado de ObjectSecurity)
AuditRuleType

Obtém o tipo que a SemaphoreSecurity classe usa para representar regras de auditoria.

GroupModified

Recebe ou define um valor booleano que especifica se o grupo associado ao objeto securável foi modificado.

(Herdado de ObjectSecurity)
IsContainer

Obtém um valor booleano que especifica se este ObjectSecurity objeto é um objeto contentor.

(Herdado de ObjectSecurity)
IsDS

Obtém um valor booleano que especifica se este ObjectSecurity objeto é um objeto de diretório.

(Herdado de ObjectSecurity)
OwnerModified

Recebe ou define um valor booleano que especifica se o proprietário do objeto securável foi modificado.

(Herdado de ObjectSecurity)

Métodos

Name Description
AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType)

Cria uma nova regra de controlo de acesso para o utilizador especificado, com os direitos de acesso especificados, controlo de acesso e flags.

AddAccessRule(AccessRule)

Adiciona a regra de acesso especificada à Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
AddAccessRule(SemaphoreAccessRule)

Procura uma regra correspondente com a qual a nova regra possa ser fundida. Se não for encontrada nenhuma, adiciona a nova regra.

AddAuditRule(AuditRule)

Adiciona a regra de auditoria especificada à Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
AddAuditRule(SemaphoreAuditRule)

Procura uma regra de auditoria com a qual a nova regra possa ser integrada. Se não for encontrada nenhuma, adiciona a nova regra.

AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags)

Cria uma nova regra de auditoria, especificando o utilizador a que a regra se aplica, os direitos de acesso à auditoria e o resultado que desencadeia a regra de auditoria.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetAccessRules(Boolean, Boolean, Type)

Obtém uma coleção das regras de acesso associadas ao identificador de segurança especificado.

(Herdado de CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Obtém uma coleção das regras de auditoria associadas ao identificador de segurança especificado.

(Herdado de CommonObjectSecurity)
GetGroup(Type)

Obtém o grupo principal associado ao proprietário especificado.

(Herdado de ObjectSecurity)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetOwner(Type)

Associa o proprietário ao grupo principal especificado.

(Herdado de ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Devolve um array de valores de bytes que representa a informação do descritor de segurança para este ObjectSecurity objeto.

(Herdado de ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Devolve a representação da Linguagem de Definição de Descritores de Segurança (SDDL) das secções especificadas do descritor de segurança associado a este ObjectSecurity objeto.

(Herdado de ObjectSecurity)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Aplica a modificação especificada à Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Aplica a modificação especificada à Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto ObjectSecurity.

(Herdado de ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Aplica a modificação especificada à Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Aplica a modificação especificada à Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto ObjectSecurity.

(Herdado de ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Guarda as secções especificadas do descritor de segurança associado a este ObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de ObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos persistir que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(String, AccessControlSections)

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Remove todas as regras de acesso associadas ao .IdentityReference

(Herdado de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Remove todas as regras de auditoria associadas ao .IdentityReference

(Herdado de ObjectSecurity)
ReadLock()

Bloqueia este ObjectSecurity objeto para acesso de leitura.

(Herdado de ObjectSecurity)
ReadUnlock()

Desbloqueia este ObjectSecurity objeto para acesso de leitura.

(Herdado de ObjectSecurity)
RemoveAccessRule(AccessRule)

Remove regras de acesso que contenham o mesmo identificador de segurança e máscara de acesso que a regra de acesso especificada da Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRule(SemaphoreAccessRule)

Procura uma regra de controlo de acesso com o mesmo utilizador e AccessControlType (permitir ou recusar) que a regra especificada, e com flags de herança e propagação compatíveis; se tal regra for encontrada, os direitos contidos na regra de acesso especificada são removidos dela.

RemoveAccessRuleAll(AccessRule)

Remove todas as regras de acesso que tenham o mesmo identificador de segurança da regra de acesso especificada da Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleAll(SemaphoreAccessRule)

Pesquisa todas as regras de controlo de acesso com o mesmo utilizador e AccessControlType (permitir ou recusar) como a regra especificada e, se encontrada, remove-as.

RemoveAccessRuleSpecific(AccessRule)

Remove todas as regras de acesso que correspondam exatamente à regra de acesso especificada da Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleSpecific(SemaphoreAccessRule)

Procura uma regra de controlo de acesso que corresponda exatamente à regra especificada e, se encontrada, remove-a.

RemoveAuditRule(AuditRule)

Remove as regras de auditoria que contêm o mesmo identificador de segurança e máscara de acesso que a regra de auditoria especificada da Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRule(SemaphoreAuditRule)

Procura uma regra de controlo de auditoria com o mesmo utilizador da regra especificada, e com flags de herança e propagação compatíveis; se for encontrada uma regra compatível, os direitos contidos na regra especificada são removidos dela.

RemoveAuditRuleAll(AuditRule)

Remove todas as regras de auditoria que tenham o mesmo identificador de segurança da regra de auditoria especificada da Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRuleAll(SemaphoreAuditRule)

Pesquisa todas as regras de auditoria com o mesmo utilizador que a regra especificada e, se encontrada, remove-as.

RemoveAuditRuleSpecific(AuditRule)

Remove todas as regras de auditoria que correspondam exatamente à regra de auditoria especificada da Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRuleSpecific(SemaphoreAuditRule)

Procura uma regra de auditoria que corresponda exatamente à regra especificada e, se encontrada, remove-a.

ResetAccessRule(AccessRule)

Remove todas as regras de acesso na Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity e depois adiciona a regra de acesso especificada.

(Herdado de CommonObjectSecurity)
ResetAccessRule(SemaphoreAccessRule)

Remove todas as regras de controlo de acesso com o mesmo utilizador que a regra especificada, independentemente de AccessControlType, e depois adiciona a regra especificada.

SetAccessRule(AccessRule)

Remove todas as regras de acesso que contenham o mesmo identificador de segurança e qualificador que a regra de acesso especificada na Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity e depois adiciona a regra de acesso especificada.

(Herdado de CommonObjectSecurity)
SetAccessRule(SemaphoreAccessRule)

Remove todas as regras de controlo de acesso com o mesmo utilizador e AccessControlType (permitir ou recusar) como regra especificada, e depois adiciona a regra especificada.

SetAccessRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de acesso associadas a este ObjectSecurity objeto. As regras de acesso protegido não podem ser modificadas por objetos-pai através da herança.

(Herdado de ObjectSecurity)
SetAuditRule(AuditRule)

Remove todas as regras de auditoria que contenham o mesmo identificador de segurança e qualificador que a regra de auditoria especificada na Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity e depois adiciona a regra de auditoria especificada.

(Herdado de CommonObjectSecurity)
SetAuditRule(SemaphoreAuditRule)

Remove todas as regras de auditoria com o mesmo utilizador que a regra especificada, independentemente do AuditFlags valor, e depois adiciona a regra especificada.

SetAuditRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de auditoria associadas a este ObjectSecurity objeto. As regras de auditoria protegidas não podem ser modificadas por objetos-pais através da herança.

(Herdado de ObjectSecurity)
SetGroup(IdentityReference)

Define o grupo primário para o descritor de segurança associado a este ObjectSecurity objeto.

(Herdado de ObjectSecurity)
SetOwner(IdentityReference)

Define o proprietário para o descritor de segurança associado a este ObjectSecurity objeto.

(Herdado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Define as secções especificadas do descritor de segurança para este ObjectSecurity objeto a partir do array especificado de valores de bytes.

(Herdado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Define o descritor de segurança para este ObjectSecurity objeto a partir do array especificado de valores de bytes.

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Define as secções especificadas do descritor de segurança para este ObjectSecurity objeto a partir da cadeia especificada da Linguagem de Definição de Descritores de Segurança (SDDL).

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Define o descritor de segurança para este ObjectSecurity objeto a partir da cadeia especificada da Linguagem de Definição de Descritores de Segurança (SDDL).

(Herdado de ObjectSecurity)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
WriteLock()

Bloqueia este ObjectSecurity objeto para acesso de escrita.

(Herdado de ObjectSecurity)
WriteUnlock()

Desbloqueia este ObjectSecurity objeto para acesso por escrita.

(Herdado de ObjectSecurity)

Aplica-se a

Ver também