WriteOnly

更新:2007 年 11 月

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

备注

规则

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

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

何时使用 WriteOnly

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

安全说明:

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

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

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

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

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

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

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

Property 语句

请参见

参考

ReadOnly (Visual Basic)

Private (Visual Basic)

Visual Basic 语言关键字