我正在考虑使用PasswordVault在我的Windows应用商店应用中存储敏感数据。
我已经做过一些关于检查本课程提供的保护的基础研究。我写了两个示例应用程序,第一个将一些数据写入Vault,第二个尝试获取该数据。
看来即使第二个应用程序使用的密钥与用于保存数据的第一个应用程序相同;第二个应用程序无法检索该数据。这很好。
有人知道PasswordVault如何将数据隔离到一个应用程序?对于另一个应用程序来获取它的应用程序的PasswordVault数据它是否必须冒充我的应用程序的sid?
为清楚起见:
App1执行此操作
const string VAULT_RESOURCE = "App1 Credentials";
var vault = new PasswordVault();
vault.Add(new PasswordCredential(VAULT_RESOURCE, "Foo", "Bar"));
App2执行此操作
var vault = new PasswordVault();
const string VAULT_RESOURCE = "App1 Credentials";
try
{
var creds = vault.FindAllByResource(VAULT_RESOURCE).FirstOrDefault();
if (creds != null)
{
UserName = creds.UserName;
Password.Text = vault.Retrieve(VAULT_RESOURCE, "Foo").Password;
}
}
catch (COMException)
{
// this exception likely means that no credentials have been stored
}
现在,App2收到一个异常,表明不存在此类凭据。这很好。我想要了解的是,App2需要在多大程度上将数据App1存储起来。