2016-12-05 8 views
0

PasswordVaultを使用して、ユーザーのログイン/パスワードをWindows 10 UWPアプリケーションに保存しています。PasswordVaultから資格情報を取得した後でパスワードが空です。

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

しかし残念ながらPasswordプロパティ:私は、私は次のコードを使用してボールトからこれらの資格情報を取得する際に今

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

:私は、サーバーからのログイン/パスワードをつかむとき、私はこのコードを使用してボールトに続い保存します内部でPasswordVaultから取得したPasswordCredentialインスタンスは常に空です。私は右のキーを使用して、Usernameプロパティが正しく保存されていますが、パスワードは失われているようです。

vault.RetrieveAll();方法の使用を試してみましたが、私のクラス内の静的フィールドとして私のPasswordVaultを作る - 同じ結果。

本当に非常に奇妙です。パスワードは保存されても空ではなく常に空です。

anybodeもこの問題に直面していますか?誰かが何か提案してもらえますか?

事前

+0

。 PasswordVaultオブジェクトをグローバルにしてから、値を設定して取得しようとします。 – Mainak

+0

@Mainak、私は自分の質問に書いたように、私はラッパークラス内の静的フィールドとして使用しようとしました。さらに、私は適切な 'Vault'オブジェクトを取得しました - 私は資格情報を取得できます。問題は、内部の資格情報オブジェクトのログインが存在することです(実際に保存されたもの)が、パスワードは空です.P.S。私はMSDNのドキュメントを使用しています:https://msdn.microsoft.com/en-us/windows/uwp/security/credential-locker – Andrew

+0

愚かなことですが、 'password'は保存時に空ではないことを確認しましたか? – schumi1331

答えて

1

適切なリソースとユーザー名を持っています返された各オブジェクトのおかげで、それは、パスワードが含まれていません。

詳細については、備考:PasswordVault.FindAllByResourceを参照してください。

PasswordCredential.RetrievePasswordメソッドを使用して、資格情報のパスワードを入力する必要があります。操作が正常に終了すると、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を使用することができるはずです。例えば

:空であるためにバインドされているので、あなたがPasswordVaultクラスの新しいオブジェクトを作成しているあなたの検索コードで

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

ありがとうございました。あなたは私の一日を作った:) – Andrew

関連する問題