从 PasswordVault 检索凭据后密码为空

Password is empty after retrieving credentials from PasswordVault

我正在使用 PasswordVault 将用户的 login/password 存储在 Windows 10 UWP 应用程序中。当我从服务器获取 login/password 时,我使用以下代码将其存储在保险库中:

PasswordVault vault = new PasswordVault();
vault.Add(new PasswordCredential(key, login, password));

现在,当我想从保管库中检索这些凭据时,我使用下一个代码:

PasswordVault vault = new PasswordVault();
vault.FindAllByResource(key).ToList();

但不幸的是,我从 PasswordVault 检索到的 PasswordCredential 实例中的 Password 属性 一直是空的。我使用了正确的密钥,Username 属性 存储正确,但密码似乎丢失了。

还尝试使用 vault.RetrieveAll(); 方法并将我的 PasswordVault 作为我的 class 中的静态字段 - 结果相同。

真的很weird.Password保存的时候不是空的,而是一直是空的

有没有人也遇到过这个问题?有人可以提出建议吗?

提前致谢

Each object returned will have the proper resource and user name, but it will not include the password.

有关详细信息,请参阅 PasswordVault.FindAllByResource 的备注。

我们应该能够使用 PasswordCredential.RetrievePassword 方法来填充凭据的密码。操作returns成功后,我们可以从Password属性中得到密码。 例如:

 PasswordVault vault = new PasswordVault();
 vault.Add(new PasswordCredential(key, login, password));
 var collection = vault.FindAllByResource(key).ToList();
 foreach (var item in collection)
 {
     item.RetrievePassword();
     var password = item.Password;
     Debug.WriteLine(password);
 }

此外,我们应该能够使用 PasswordVault.Retrieve 到 return 包含所有数据的凭据。

例如:

PasswordVault vault = new PasswordVault();
vault.Add(new PasswordCredential(key, login, password));
var pass = vault.Retrieve(key, login);
Debug.WriteLine(pass.Password);