Есть ли способ сделать PasswordBox
в приложении WPF работать так же, как в большинстве приложений для телефонов или планшетов. То есть, пусть он покажет последний символ, введенный открытым текстом на короткий период.Телефонный пароль для окна приложения WPF
ответ
Для этого не существует способа, так как он нарушает правила безопасности. Пожалуйста, смотрите эту должность для получения дополнительной информации о том, почему это не рекомендуется: How to bind to a PasswordBox in MVVM
Вот принятый ответ:
Люди должны иметь следующую директиву безопасности татуировку на внутренней стороне своих век: Никогда хранить в текстовом формате пароли.
Причина, по которой WPF/Silverlight PasswordBox не предоставляет DP для свойства Password, связана с безопасностью. Если WPF/Silverlight должны были хранить DP для пароля, для этого потребуется, чтобы фреймворк сохранял сам пароль незашифрованным в памяти. Это считается довольно сложным вектором атаки безопасности. В PasswordBox используется зашифрованная память (сортировка), и единственный способ доступа к паролю - это свойство CLR.
Если вы все еще хотите достичь этого, я смог сделать это с помощью элемента управления TextBox.
XAML:
<TextBox Name="tbPassword"/>
Codebehind:
string actualPassword = "";
string displayedPassword = "";
DispatcherTimer dispatcherTimer = new DispatcherTimer();
public MainWindow()
{
InitializeComponent();
tbPassword.PreviewKeyDown += tbPassword_PreviewKeyDown;
tbPassword.PreviewTextInput += tbPassword_PreviewTextInput;
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
}
private void tbPassword_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Back)
{
if (actualPassword.Length > 0)
{
actualPassword = actualPassword.Substring(0, actualPassword.Length - 1);
if (actualPassword.Length > 0)
{
ShowLastCharacter();
tbPassword.CaretIndex = displayedPassword.Length;
}
}
}
}
private void tbPassword_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
actualPassword += e.Text;
e.Handled = true;
ShowLastCharacter();
tbPassword.CaretIndex = displayedPassword.Length;
}
private void ShowLastCharacter()
{
var lastChar = actualPassword.Substring(actualPassword.Length - 1);
displayedPassword = "";
for (int i = 0; i < actualPassword.Length - 1; i++)
displayedPassword += "•";
displayedPassword += lastChar;
tbPassword.Text = displayedPassword;
if (dispatcherTimer.IsEnabled)
dispatcherTimer.Stop();
dispatcherTimer.Start();
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
displayedPassword = "";
for (int i = 0; i < actualPassword.Length; i++)
displayedPassword += "•";
tbPassword.Text = displayedPassword;
tbPassword.CaretIndex = displayedPassword.Length;
}
- 1. Приостановка приложения wpf окна
- 2. WPF C# вызов окна функции из приложения
- 3. Создание окна отладки для WPF
- 4. Как правильно изменить размер окна приложения wpf?
- 5. Запуск окна WPF из другого приложения addin
- 6. WPF: закрытие приложения после закрытия окна
- 7. Получите растровое изображение из окна приложения WPF?
- 8. Использовать стиль из wpf для приложения в форме окна
- 9. Добавление модуля задания расписания для приложения окна WPF
- 10. дешифрования окна экземпляра пароль
- 11. окна для тривиального приложения?
- 12. Использование моего окна WPF как всплывающего окна
- 13. Отключение Aero glass/transparent для окна WPF?
- 14. всплывающего окна проблемы окна WPF
- 15. Размер окна окна WPF для размера окна Размер
- 16. Размер окна окна окна WPF для разных разрешений
- 17. значки для приложения WPF
- 18. WPF и окна черепицей
- 19. сделать телефонный звонок из приложения Worklight
- 20. Получите пароль по электронной почте от приложения WPF
- 21. wpf: пользовательская тень окна
- 22. телефонный зазор против monotouch для приложения с интенсивным использованием данных
- 23. Как сделать телефонный звонок без приложения для телефона, например google?
- 24. Название окна WPF-MVVM-Bind для свойства
- 25. WPF-клиент для WebAPI - как обрабатывать пароль для аутентификации
- 26. Как зашифровать строку подключения для приложения wpf
- 27. Какой шаблон используется в приложении WPF dekstop для окна входа в систему и главного окна приложения?
- 28. Форма WPF внутри окна формы окна
- 29. Поле сообщения приложения WPF
- 30. Пароль Защитить кнопку «Приложения»
Я видел, что статья о генерализованной и привязки данных подозревал, что это может быть, поэтому я не мог найти встроенный вариант, чтобы включить Это. В моем случае клиент хочет предложить короткий числовой вывод в качестве «системы чести», альтернативной более безопасным параметрам проверки подлинности (например, смарт-картам) для своих конечных пользователей. Предполагая, что они непреклонны в том, чтобы включить его, пространство ключей, достаточно маленькое, чтобы тривиально брутфорсировать, даже если оно хранится с использованием медленного хэша, является настолько крупным открытием, что, возможно, тривиализирует такую атаку в памяти. *вздох* –