我想知道 PasswordBox 控件涉及的所有安全性是否完全可能:

我有一个 XAML 表单(C#/WPF),用户将在其中配置数据库访问。在这种形式中,我使用 PasswordBox 来获取 SQL Server 用户密码。

由于这些数据被保存到磁盘以备将来使用(在受密码保护的 SQL Server CE 数据库文件中),而在第一次运行时没有设置密码,如果用户回来并出于某种原因需要编辑 SQL 连接,那么可能是先前配置中保留的密码(除非他使用 Windows 身份验证而不是 SQL 用户身份验证)

所以我想在第一次运行时显示一个空的 PasswordBox 但如果已经设置了密码,当用户返回时,我想显示 X 个“*”(以表明存在密码。

由于 PasswordBox.Password 不可绑定(bind),我只能选择始终将其显示为空或始终显示固定数量的“*”(通过设置实际上并不代表真实密码的默认密码)。

有没有其他选择(除了像 PasswordBox Helper 这样当然注入(inject)绑定(bind)的东西 - 我宁愿不走那条路,因为可能有一个我没有考虑过让 MS 选择不让它绑定(bind)到 SecureString 的原因) ?

最佳答案

您可以从文件中读取密码。

//Storing the Password in String.
string pwd = "Password Read from the file";
PasswordBox.Password = pwd;

因此,当应用程序第一次打开并且文件中没有任何密码时,它会显示空的 PasswordBox。再次,当用户已经设置密码时,密码将在文件中找到,并将加载到密码框中。

关于c# - 设置 PasswordBox 的初始值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32089243/

10-11 02:18