WriteOnly (Visual Basic)
Especifica que uma propriedade pode ser gravada, mas não lida.
Observações
Regras
Contexto da Declaração. Você pode usar WriteOnly
apenas no nível do módulo. Isso significa que o contexto da declaração para uma WriteOnly
propriedade deve ser uma classe, estrutura ou módulo e não pode ser um arquivo de origem, namespace ou procedimento.
Você pode declarar uma propriedade como WriteOnly
, mas não como uma variável.
Quando usar WriteOnly
Às vezes, você quer que o código de consumo seja capaz de definir um valor, mas não descobrir o que é. Por exemplo, dados sensíveis, como um número de registro social ou uma senha, precisam ser protegidos contra acesso por qualquer componente que não o definiu. Nesses casos, você pode usar uma WriteOnly
propriedade para definir o valor.
Importante
Ao definir e usar uma WriteOnly
propriedade, considere as seguintes medidas de proteção adicionais:
Substituição. Se a propriedade for membro de uma classe, permita que ela use como padrão NotOverridable, e não a
Overridable
declare ouMustOverride
. Isso impede que uma classe derivada faça acesso indesejado por meio de uma substituição.Nível de Acesso. Se você tiver os dados confidenciais da propriedade em uma ou mais variáveis, declare-os Privados para que nenhum outro código possa acessá-los.
Encriptação. Armazene todos os dados confidenciais em formato criptografado em vez de texto sem formatação. Se o código malicioso de alguma forma ganha acesso a essa área da memória, é mais difícil fazer uso dos dados. A criptografia também é útil se for necessário serializar os dados confidenciais.
Redefinição. Quando a classe, estrutura ou módulo que define a propriedade estiver sendo encerrado, redefina os dados confidenciais para valores padrão ou para outros valores sem significado. Isso dá proteção extra quando essa área de memória é liberada para acesso geral.
Persistência. Não persista nenhum dado sensível, por exemplo, no disco, se puder evitá-lo. Além disso, não escreva dados confidenciais na Área de Transferência.
O WriteOnly
modificador pode ser usado neste contexto: