gpt4 book ai didi

wpf - 在 WPF 中使用 PasswordBox - MVVM

转载 作者:行者123 更新时间:2023-12-04 07:45:23 26 4
gpt4 key购买 nike

我已经阅读了几篇关于如何使用附加属性绑定(bind)到 WPF 中 PasswordBox 的值的文章。但是,每篇文章还引用了 .NET 文档,该文档解释了为什么 PasswordBox 一开始就不能绑定(bind)。

无论如何,我都不认为自己是安全专家,但我认为微软的某个人知道他们在做什么,我不应该付出努力试图撤销它。

所以,相反,我想出了自己的解决方案。

public class LoginViewModel
{
// other properties here

public PasswordBox Password
{
get { return m_passwordBox; }
}

// Executed when the Login button is clicked.
private void LoginExecute()
{
var password = Password.SecurePassword;

// do more stuff...
}
}

然后,在我的 XAML 中,我只是通过将 Password 字段绑定(bind)到 ContentPresenter 来呈现 PasswordBox。 .

所以我的问题是......这样做有问题吗?我意识到我通过让实际控件出现在我的 ViewModel 中以某种方式破坏了 MVVM,但至少这似乎比不保护密码字段更正确。

如果这实际上是一个问题,是否有人提出了不涉及使用附加属性并将密码存储在 ViewModel 中的解决方案?

谢谢!
-J

最佳答案

至少在登录期间需要密码时将密码存储在 VM 中有什么问题?您是正确的,根据 MVVM 模式,VM 不应该引用像 PasswordBox 这样的控件。

在 View 中,将处理程序添加到 PasswordChanged 事件。在处理程序中,使用密码框的 SecurePassword 更新 VM 中的 SecureString 属性。

关于wpf - 在 WPF 中使用 PasswordBox - MVVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3444520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com