SemaphoreSecurity Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa a segurança do controle de acesso do Windows de um semáforo nomeado. Essa classe não pode ser herdada.
public ref class SemaphoreSecurity sealed : System::Security::AccessControl::NativeObjectSecurity
public sealed class SemaphoreSecurity : System.Security.AccessControl.NativeObjectSecurity
[System.Security.SecurityCritical]
public sealed class SemaphoreSecurity : System.Security.AccessControl.NativeObjectSecurity
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class SemaphoreSecurity : System.Security.AccessControl.NativeObjectSecurity
type SemaphoreSecurity = class
inherit NativeObjectSecurity
[<System.Security.SecurityCritical>]
type SemaphoreSecurity = class
inherit 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 a seguir 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 para o usuário atual e exibe o par de regras resultante. 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 regra existente Allow .
Observação
Este exemplo não anexa 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
Comentários
Um SemaphoreSecurity objeto especifica os direitos de acesso para um semáforo do sistema nomeado e também especifica como as 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 .
Isso espelha o sistema de segurança subjacente do Windows, no qual cada objeto protegível tem no máximo uma DACL (lista de controle de acesso discricionário) que controla o acesso ao objeto protegido e, no máximo, uma SACL (lista de controle de acesso do sistema) que especifica quais tentativas de acesso são auditadas. O DACL e o SACL são listas ordenadas de ACE (entradas de controle de acesso) que especificam acesso e auditoria para usuários e grupos. Um SemaphoreAccessRule objeto ou SemaphoreAuditRule pode representar mais de um ACE.
Observação
Um Semaphore objeto pode representar um semáforo local ou um semáforo do sistema nomeado. A segurança do controle de acesso do Windows é significativa apenas para semáforos nomeados do sistema.
As SemaphoreSecurityclasses , SemaphoreAccessRulee SemaphoreAuditRule ocultam os detalhes de implementação de ACLs e ACEs. Eles permitem que você ignore os dezessete tipos de ACE diferentes e a complexidade de manter corretamente a herança e a propagação de direitos de acesso. Esses objetos também são projetados para evitar os seguintes erros comuns de controle de acesso:
Criando um descritor de segurança com uma DACL nula. Uma referência nula a um DACL permite que qualquer usuário adicione regras de acesso a um objeto, potencialmente criando um ataque de negação de serviço. Um novo SemaphoreSecurity objeto sempre começa com um DACL vazio, que nega todo o acesso para todos os usuários.
Violando a ordenação canônica de ACEs. Se a lista ACE na DACL não for mantida na ordem canônica, os usuários poderão ter acesso inadvertidamente ao objeto protegido. Por exemplo, os direitos de acesso negados sempre devem aparecer antes dos direitos de acesso permitidos. SemaphoreSecurity os objetos mantêm a ordem correta internamente.
Manipulando sinalizadores de descritor de segurança, que devem estar apenas sob controle do gerenciador de recursos.
Criando combinações inválidas de sinalizadores ACE.
Manipulando ACEs herdados. A herança e a propagação são tratadas pelo gerenciador de recursos, em resposta às alterações feitas nas regras de acesso e auditoria.
Inserindo ACEs sem sentido em ACLs.
Os únicos recursos não compatíveis com os objetos de segurança do .NET são atividades perigosas que devem ser evitadas pela maioria dos desenvolvedores de aplicativos, como o seguinte:
Tarefas de baixo nível que normalmente são executadas pelo gerenciador de recursos.
Adicionar ou remover entradas de controle de acesso de maneiras que não mantêm a ordenação canônica.
Para modificar a segurança de controle de acesso do Windows para um semáforo nomeado, use o Semaphore.GetAccessControl método para obter o SemaphoreSecurity objeto . Modifique o objeto de segurança adicionando e removendo regras e, em seguida, use o Semaphore.SetAccessControl método para reanexá-lo.
Importante
As alterações feitas em um SemaphoreSecurity objeto não afetam os níveis de acesso do semáforo nomeado até que você chame o Semaphore.SetAccessControl método para atribuir o objeto de segurança alterado ao semáforo nomeado.
Para copiar a segurança do controle de acesso de um semáforo para outro, use o Semaphore.GetAccessControl método para obter um SemaphoreSecurity objeto que representa 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.
Os usuários com um investimento na linguagem de definição de descritor 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 de caracteres que representa as regras de acesso no formato SDDL. Isso não é recomendado para o novo desenvolvimento.
Construtores
SemaphoreSecurity() |
Inicializa uma nova instância da classe SemaphoreSecurity com valores padrão. |
SemaphoreSecurity(String, AccessControlSections) |
Inicializa uma nova instância da classe SemaphoreSecurity com as seções especificadas das regras de segurança de controle de acesso do semáforo do sistema com o nome especificado. |
Propriedades
AccessRightType |
Obtém a enumeração que a classe SemaphoreSecurity usa para representar os direitos de acesso. |
AccessRulesModified |
Obtém ou define um valor booliano que especifica se as regras de acesso associadas a este objeto ObjectSecurity foram modificadas. (Herdado de ObjectSecurity) |
AccessRuleType |
Obtém o tipo que a classe SemaphoreSecurity usa para representar as regras de acesso. |
AreAccessRulesCanonical |
Obtém um valor booliano que especifica se as regras de acesso associadas a este objeto ObjectSecurity estão na ordem canônica. (Herdado de ObjectSecurity) |
AreAccessRulesProtected |
Obtém um valor booliano que especifica se a DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto ObjectSecurity está protegida. (Herdado de ObjectSecurity) |
AreAuditRulesCanonical |
Obtém um valor booliano que especifica se as regras de auditoria associadas a este objeto ObjectSecurity estão na ordem canônica. (Herdado de ObjectSecurity) |
AreAuditRulesProtected |
Obtém um valor booliano que especifica se a SACL (Lista de Controle de Acesso do Sistema) associada a esse objeto ObjectSecurity está protegida. (Herdado de ObjectSecurity) |
AuditRulesModified |
Obtém ou define um valor booliano que especifica se as regras de auditoria associadas a este objeto ObjectSecurity foram modificadas. (Herdado de ObjectSecurity) |
AuditRuleType |
Obtém o tipo que a classe SemaphoreSecurity usa para representar as regras de auditoria. |
GroupModified |
Obtém ou define um valor booliano que especifica se o grupo associado ao objeto protegível foi modificado. (Herdado de ObjectSecurity) |
IsContainer |
Obtém um valor booliano que especifica se este ObjectSecurity é um objeto contêiner. (Herdado de ObjectSecurity) |
IsDS |
Obtém um valor booliano que especifica se este ObjectSecurity é um objeto de diretório. (Herdado de ObjectSecurity) |
OwnerModified |
Obtém ou define um valor booliano que especifica se o proprietário do objeto protegível foi modificado. (Herdado de ObjectSecurity) |
SecurityDescriptor |
Obtém o descritor de segurança para esta instância. (Herdado de ObjectSecurity) |
Métodos
AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType) |
Cria uma nova regra de controle de acesso para o usuário especificado, com os direitos de acesso, o controle de acesso e os sinalizadores especificados. |
AddAccessRule(AccessRule) |
Aplica a regra de acesso especificada à DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity. (Herdado de CommonObjectSecurity) |
AddAccessRule(SemaphoreAccessRule) |
Pesquisa por uma regra correspondente com a qual a nova regra pode ser mesclada. Se nenhum erro for encontrado, adiciona a nova regra. |
AddAuditRule(AuditRule) |
Adiciona a regra de auditoria especificada à SACL (Lista de Controle de Acesso do Sistema) associada ao objeto CommonObjectSecurity atual. (Herdado de CommonObjectSecurity) |
AddAuditRule(SemaphoreAuditRule) |
Pesquisa uma regra de auditoria com a qual a nova regra pode ser mesclada. Se nenhum erro for encontrado, adiciona a nova regra. |
AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags) |
Cria uma nova regra de auditoria, especificando o usuário ao qual a regra se aplica, os direitos de acesso para auditoria e o resultado que dispara 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 primário associado ao proprietário especificado. (Herdado de ObjectSecurity) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetOwner(Type) |
Obtém o proprietário associado ao grupo primário especificado. (Herdado de ObjectSecurity) |
GetSecurityDescriptorBinaryForm() |
Retorna uma matriz de valores de byte que representa as informações do descritor de segurança para este objeto ObjectSecurity. (Herdado de ObjectSecurity) |
GetSecurityDescriptorSddlForm(AccessControlSections) |
Retorna a representação em SDDL (Linguagem de Definição do Descritor de Segurança) das seções especificadas do descritor de segurança associado a este objeto ObjectSecurity. (Herdado de ObjectSecurity) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ModifyAccess(AccessControlModification, AccessRule, Boolean) |
Aplica a modificação especificada à DACL (Lista de controle de acesso discricionário) associada a esse objeto CommonObjectSecurity. (Herdado de CommonObjectSecurity) |
ModifyAccessRule(AccessControlModification, AccessRule, Boolean) |
Aplica a modificação especificada à DACL (Lista de controle de acesso discricionário) associada a esse objeto ObjectSecurity. (Herdado de ObjectSecurity) |
ModifyAudit(AccessControlModification, AuditRule, Boolean) |
Aplica a modificação especificada à SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity. (Herdado de CommonObjectSecurity) |
ModifyAuditRule(AccessControlModification, AuditRule, Boolean) |
Aplica a modificação especificada à SACL (Lista de Controle de Acesso do Sistema) associada a este objeto ObjectSecurity. (Herdado de ObjectSecurity) |
Persist(Boolean, String, AccessControlSections) |
Salva as seções especificadas do descritor de segurança associado a este objeto ObjectSecurity no armazenamento permanente. É recomendável que os valores dos parâmetros |
Persist(SafeHandle, AccessControlSections) |
Salva as seções especificadas do descritor de segurança associado a este objeto NativeObjectSecurity no armazenamento permanente. É recomendável que os valores dos parâmetros |
Persist(SafeHandle, AccessControlSections, Object) |
Salva as seções especificadas do descritor de segurança associado a este objeto NativeObjectSecurity no armazenamento permanente. É recomendável que os valores dos parâmetros |
Persist(String, AccessControlSections) |
Salva as seções especificadas do descritor de segurança associado a este objeto NativeObjectSecurity no armazenamento permanente. É recomendável que os valores dos parâmetros |
Persist(String, AccessControlSections, Object) |
Salva as seções especificadas do descritor de segurança associado a este objeto NativeObjectSecurity no armazenamento permanente. É recomendável que os valores dos parâmetros |
PurgeAccessRules(IdentityReference) |
Remove todas as regras de acesso associadas à IdentityReference especificada. (Herdado de ObjectSecurity) |
PurgeAuditRules(IdentityReference) |
Remove todas as regras de auditoria associadas ao IdentityReference especificado. (Herdado de ObjectSecurity) |
ReadLock() |
Bloqueia este objeto ObjectSecurity para acesso de leitura. (Herdado de ObjectSecurity) |
ReadUnlock() |
Desbloqueia este objeto ObjectSecurity para acesso de leitura. (Herdado de ObjectSecurity) |
RemoveAccessRule(AccessRule) |
Remove as regras de acesso que contêm a mesma máscara de acesso e o identificador de segurança, como a regra de acesso especificada da DACL (lista de controle de acesso discricionário) associada a esse objeto CommonObjectSecurity. (Herdado de CommonObjectSecurity) |
RemoveAccessRule(SemaphoreAccessRule) |
Procura uma regra de controle de acesso com o mesmo usuário e AccessControlType (permitir ou negar) como a regra especificada e com herança compatível e sinalizadores de propagação; se uma regra com essas características for encontrada, os direitos contidos na regra de acesso especificada serão removidos dela. |
RemoveAccessRuleAll(AccessRule) |
Remove todas as regras de acesso que correspondem ao mesmo identificador de segurança que a regra de acesso especificada da DACL (Lista de Controle de Acesso Discricionário) associada a este objeto CommonObjectSecurity. (Herdado de CommonObjectSecurity) |
RemoveAccessRuleAll(SemaphoreAccessRule) |
Pesquisa por todas as regras de controle de acesso com o mesmo usuário e AccessControlType (permitir ou negar) como a regra especificada e, se encontradas, remove-as. |
RemoveAccessRuleSpecific(AccessRule) |
Remove todas as regras de acesso que correspondem com exatidão à regra de acesso especificada da DACL (Lista de Controle de Acesso Discricionário) associada a este objeto CommonObjectSecurity. (Herdado de CommonObjectSecurity) |
RemoveAccessRuleSpecific(SemaphoreAccessRule) |
Pesquisa por uma regra de controle de acesso que corresponda exatamente à regra especificada e, se encontrada, remove-a. |
RemoveAuditRule(AuditRule) |
Remove todas as regras de auditoria que contêm o mesmo identificador de segurança e máscara de acesso que a regra de auditoria especificada na SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity. (Herdado de CommonObjectSecurity) |
RemoveAuditRule(SemaphoreAuditRule) |
Pesquisa uma regra de controle de auditoria com o mesmo usuário que a regra especificada e com sinalizadores de herança e de propagação compatíveis; se uma regra compatível for encontrada, os direitos contidos na regra especificada serão removidos dela. |
RemoveAuditRuleAll(AuditRule) |
Remove todas as regras de auditoria que têm o mesmo identificador de segurança que a regra de auditoria especificada da SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity. (Herdado de CommonObjectSecurity) |
RemoveAuditRuleAll(SemaphoreAuditRule) |
Pesquisa todas as regras de auditoria com o mesmo usuário que a regra especificada e, se encontradas, remove-as. |
RemoveAuditRuleSpecific(AuditRule) |
Remove todas as regras de auditoria que correspondem com exatidão à regra de auditoria especificada na SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity. (Herdado de CommonObjectSecurity) |
RemoveAuditRuleSpecific(SemaphoreAuditRule) |
Pesquisa por uma regra de auditoria que corresponda exatamente à regra especificada e, se encontrada, remove-a. |
ResetAccessRule(AccessRule) |
Remove todas as regras de acesso na DACL (Lista de Controle de Acesso Discricionário) associada a este objeto CommonObjectSecurity e, em seguida, adiciona a regra de acesso especificada. (Herdado de CommonObjectSecurity) |
ResetAccessRule(SemaphoreAccessRule) |
Remove todas as regras de controle de acesso com o mesmo usuário que a regra especificada, independentemente de AccessControlType e, em seguida, adiciona a regra especificada. |
SetAccessRule(AccessRule) |
Remove todas as regras de acesso que contêm o mesmo identificador de segurança e qualificador que a regra de acesso especificada na DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity e, em seguida, adiciona a regra de acesso indicada. (Herdado de CommonObjectSecurity) |
SetAccessRule(SemaphoreAccessRule) |
Remove todas as regras de controle de acesso com o mesmo usuário e AccessControlType (permitir ou negar) que a regra especificada e, em seguida, adiciona a regra especificada. |
SetAccessRuleProtection(Boolean, Boolean) |
Define ou remove a proteção das regras de acesso associada a este objeto ObjectSecurity. As regras de acesso protegidas não podem ser modificadas por objetos pai por meio da herança. (Herdado de ObjectSecurity) |
SetAuditRule(AuditRule) |
Remove todas as regras de auditoria que contêm o mesmo identificador de segurança e qualificador que a regra de auditoria especificada na SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity e, em seguida, adiciona a regra de auditoria indicada. (Herdado de CommonObjectSecurity) |
SetAuditRule(SemaphoreAuditRule) |
Remove todas as regras de auditoria com o mesmo usuário que a regra especificada, independentemente do valor de AuditFlags e, em seguida, adiciona a regra especificada. |
SetAuditRuleProtection(Boolean, Boolean) |
Define ou remove a proteção das regras de auditoria associadas a este objeto ObjectSecurity. As regras de auditoria protegidas não podem ser modificadas por objetos pai por meio da herança. (Herdado de ObjectSecurity) |
SetGroup(IdentityReference) |
Define o grupo primário para o descritor de segurança associado a esse objeto ObjectSecurity. (Herdado de ObjectSecurity) |
SetOwner(IdentityReference) |
Define o proprietário para o descritor de segurança associado a esse objeto ObjectSecurity. (Herdado de ObjectSecurity) |
SetSecurityDescriptorBinaryForm(Byte[]) |
Define o descritor de segurança para este objeto ObjectSecurity da matriz especificada de valores de byte. (Herdado de ObjectSecurity) |
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections) |
Define as seções especificadas do descritor de segurança para este objeto ObjectSecurity da matriz especificada de valores de byte. (Herdado de ObjectSecurity) |
SetSecurityDescriptorSddlForm(String) |
Define o descritor de segurança para este objeto ObjectSecurity da cadeia de caracteres SDDL (Linguagem de Definição do Descritor de Segurança) especificada. (Herdado de ObjectSecurity) |
SetSecurityDescriptorSddlForm(String, AccessControlSections) |
Define as seções especificadas do descritor de segurança para este objeto ObjectSecurity da cadeia de caracteres SDDL (Linguagem de Definição do Descritor de Segurança) especificada. (Herdado de ObjectSecurity) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
WriteLock() |
Bloqueia este objeto ObjectSecurity para acesso de gravação. (Herdado de ObjectSecurity) |
WriteUnlock() |
Desbloqueia este objeto ObjectSecurity para acesso de gravação. (Herdado de ObjectSecurity) |