2013-04-12 58 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方法,所以我認爲它應該是可用的。 –

相關問題