我正在使用一个具有密码属性的用户控件。要设置该密码属性,我正在使用在ViewModel中创建的dependencyProperty。当我正在运行应用程序并尝试使用Snoop工具(SnoopWPF)进行调试,当我查看用户控件属性时,它显示了该控件的密码设置。我想防止Snoop工具显示密码属性值。有什么办法可以将安全性添加到perticular依赖属性?
XAML代码:
<class:MyControl x:Name="myControl" IsReadOnly="True"
CtlPassword="{Binding myPassword, Mode=OneWay}"
</class:MyControl>
private static DependencyProperty PasswordProperty = DependencyProperty.Register("myPassword", typeof(String), typeof(myControl), new PropertyMetadata(null));
public String myPassword
{
get { return (String)GetValue(PasswordProperty); }
set { SetValue(PasswordProperty, value); }
}
我查看了此链接中的一种解决方案 - 窥探解决方案我们可以为此MyPassword属性添加任何安全性吗?它将从任何调试工具中隐藏此属性
不要将密码存储在string
属性中。如果您关心安全性,这是一个很大的禁忌。至少使用SecureString
-或根本不存储它们。
有一个示例,说明如何使用行为绑定到可用的SecurePassword
属性:
将SecurePassword绑定到ViewModel