我的UWP应用程序使用多个帐户登录到多个Web服务。每个包含URL,密码和用户名以及其他信息,如开发人员密钥等。我希望将它们安全地存储为分配给Windows用户帐户的漫游设置。
UWP的凭证储物柜似乎可以安全地存储凭证部分,用户名和密码。它也与用户漫游,我可以忍受其10个凭据存储限制(github issue #2411)。遗憾的是,似乎并不是一种使用唯一ID将其与我的帐户包含或关联的明确方式:
//
//Add a credential to PasswordVault by supplying resource, username, and password
//
Windows.Security.Credentials.PasswordVault vault = new Windows.Security.Credentials.PasswordVault();
PasswordCredential cred = new PasswordCredential(InputResourceValue.Text, InputUserNameValue.Text, InputPasswordValue.Password);
vault.Add(cred);
PasswordVault需要用户名,资源字符串和密码。虽然我可以使用用户名检索凭据,但不能保证其唯一性。虽然资源密钥是唯一的,但是它不清楚它是否标识了实际的凭证或其容器。
有关如何解决此问题的任何想法?
答案 0 :(得分:0)
不同的应用程序使用不同的方法。有些应用只有AppName
这样的资源名称,然后使用UserName
来存储不同类型的"键",因此它们有AccessKey
,Password
等
另一种方法是使用不同的Resource
值,例如AppName.Facebook
,AppName.Local
等不同的身份验证提供程序,使用UserName
,用户名和密码用于密码或访问令牌。
最后 - 因为您不受存储在Password
中的字符串类型的限制,您可以创建包含多个属性的复杂类型,例如在存储到密码保管库之前使用JSON对其进行序列化。这样,您只需输入一个条目即可存储更多信息。