Значения свойств чувствительных зависимостей предоставляются инструментом snoop в приложении WPF. Как это предотвратить?
Я использую один пользовательский элемент управления, который имеет свойство пароля. Чтобы установить это свойство пароля, я использую DependencyProperty, созданный в viewmodel. Когда я запускаю приложение и пытаюсь выполнить отладку, используя инструмент 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); }
}
Я посмотрел на эту ссылку для одного из решений - решения, защищенного от Snoop. Можем ли мы добавить какую-либо защиту этому свойству myPassword? Который будет скрывать это свойство от любого инструмента отладки
1 ответ
Не храните пароли в string
свойства. Это большое нет-нет, если вы заботитесь о безопасности. По крайней мере, использовать SecureString
- или не храните их вообще.
Существует пример того, как использовать поведение для привязки к SecurePassword
Недвижимость доступна здесь: