2013-04-12 78 views
1

在WinRT API中有包含PasswordCredential类的Windows.Security.Credentials名称空间。 使用它,我们可以加密敏感数据,如用户名和密码,但类本身有一个名为“属性”的属性,它看起来像一个方便的容器,其他自定义属性与存储的凭证有关,但我无法得到它工作。 文档中的“属性”有一个“只读”访问类型,但我认为这只是意味着我不能更改它指向的容器的引用。 我的问题是:我可以将自定义属性添加到PasswordCredential.Properties吗?

PasswordCredential的“属性”属性是否可用于程序员?

对不起,文字的任何错误,还可以纠正我的答案英语,这不是我的母语;)

编辑:这可能是有用的:

“添加”方法下面的代码抛出ArgumentException:

PasswordVault v = new PasswordVault(); 
PasswordCredential c = new PasswordCredential("TEST", "TEST", "TEST"); 
c.Properties.Add("Name", "testName"); 
v.Add(c); 

回答

4

不幸的是,PasswordCredentials.Properties是PasswordCredentialPropertyStore的一个实例,该文档将每个方法描述为“......保留供内部使用,不打算在您的代码中使用”。

这就是为什么它不适用于程序员。

0

不,它是只读属性,所以你不能设置它。它的设计使您可以枚举对象的属性(不是c#类属性,而是属性集合的单个属性)。命名使得混淆。

+0

那么我知道PasswordCredential.Properties只是一个键 - 值对的容器。我想用它的“添加”方法放入我自己的对中,但似乎无法使用。我认为“只读”属性的整个时间意味着我无法设置它,改变它指向的对象的引用,但我仍然可以使用它的修改对象的方法,如“添加”在我的PasswordCredential.Properties集合。 –

+0

如果底层的类允许,你可以。即如果我只有一个只读列表然后我可以添加额外的项目到现有的列表,但我不能把一个新的列表放在它的位置,但它如果它只读IEnumerable 然后我不能添加任何东西到收藏,或它指向一个新的IEnumerable。 – Zipper

+0

好吧,让我们说我明白;) PasswordCredential.Properties返回一个IPropertySet接口,它扩展了IDictionary ,它有一个Add方法,所以我认为它应该是可用的。 –

相关问题