Somente-leitura
Especifica que uma propriedade pode ser gravada mas não lida.
Comentários
Regras
Contexto da Declaração. Você pode usar WriteOnly somente em nível de módulo.Isso significa que o contexto da declaração para uma propriedade WriteOnly deve ser uma classe, estrutura ou módulo e não um arquivo de código-fonte, namespace ou procedimento.
Você pode declarar uma propriedade como WriteOnly, mas não uma variável.
Quando usar WriteOnly
Às vezes você deseja que o código consumidor seja capaz de definir um valor mas não descobrir o que ele é.Por exemplo, dados confidenciais, como um CPF ou uma senha, precisam ser protegidos contra o acesso por qualquer componente que não os definiram.Nesses casos, você pode usar uma propriedade WriteOnly para definir o valor.
Observação de segurança: |
---|
Quando você define e usar um WriteOnly propriedade, considere as seguintes medidas protetoras adicionais: |
Substituição. Se a propriedade for um membro de uma classe, permita que ele tenha como padrão NotOverridable e não o declare Overridable ou MustOverride.Isso impede que uma classe derivada faça um acesso indesejado através de uma substituição.
Nível de Acesso Se você mantiver a propriedade dos dados confidenciais em um ou mais variáveis, declare-as como Private (Visual Basic) para que nenhum outro código possa acessá-las.
Criptografia. Armazene todas os dados confidenciais em formato criptografado em vez de em texto sem-formatação.Se código mal-intencionado de alguma maneira obtiver acesso à essa área de memória, é mais difícil fazer uso dos dados.A criptografia também é útil se for necessário serializar os dados confidenciais.
Redefinindo. Quando a classe, estrutura ou módulo definindo a propriedade está sendo finalizado, redefina os dados confidenciais para valores padrão ou outros valores sem-sentido.Isso proporciona proteção extra quando essa área da memória é liberada para acesso geral.
Persistência. Não mantenha quaisquer dados confidenciais, em disco por exemplo, se você pode evitá-lo.Além disso, não grave nenhum dado confidencial na Área de transferência.
O modificador WriteOnly pode ser utilizado neste contexto: