WriteOnly (Visual Basic)

指定某个属性可写但不可读。

备注

规则

**声明上下文。**仅可以在模块级别使用 WriteOnly。 这表示,WriteOnly 属性的声明上下文必须是类、结构或模块,但不可以是源文件、命名空间或过程。

可以将属性声明为 WriteOnly,但不可以这样声明变量。

何时使用 WriteOnly

有时,您可能希望使用属性的代码能够设置它的值,但无法读取其内容。 例如,身份证号或密码这样的敏感数据需要受到保护,以防止不设置它的其他组件访问它。 在这些情况下,可以使用 WriteOnly 属性来设置该值。

安全说明安全说明

在定义和使用 WriteOnly 属性时,请考虑下面的附加保护措施:

  • **重写。**如果属性是类的成员,则将其默认为 NotOverridable (Visual Basic),不要将其声明为 Overridable 或 MustOverride。 这可以阻止派生类通过重写进行不需要的访问。

  • **访问级别。**如果将属性的敏感数据存放在一个或多个变量中,请声明这些变量为 Private (Visual Basic),以便其他代码无法访问它们。

  • **加密。**以加密的形式而不是纯文本的形式存储所有敏感数据。 如果恶意代码以某种方式获取了对该内存区域的访问权,经过加密的数据比纯文本相比更难于被利用。 如果必须序列化敏感数据,加密也很有用。

  • **重置。**当定义属性的类、结构或模块终止时,将敏感数据重置为默认值或其他无意义的值。 在为一般访问释放该内存区域时,这会提供额外的保护。

  • **持久性。**尽量避免持久性地存放任何敏感数据(例如存放在磁盘上)。 而且,不要将任何敏感数据写入剪贴板。

WriteOnly 修饰符可用于下面的上下文中:

Property 语句

请参见

参考

ReadOnly (Visual Basic)

Private (Visual Basic)

其他资源

关键字 (Visual Basic)