2016-12-05 4 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)); 

: 나는 서버에서 로그인/패스워드를 잡아 때이 코드를 사용하여 볼트에서 다음 저장 안에 내 PasswordCredentialPasswordVault에서 검색 인스턴스는 항상 비어 있습니다. 올바른 키를 사용하면 Username 속성이 올바르게 저장되지만 암호가 손실 된 것 같습니다.

또한 vault.RetrieveAll(); 메서드를 사용하고 내 PasswordVault을 정적 클래스로 만듭니다. 동일한 결과가 나타납니다.

정말 정말 이상합니다. 암호는 저장 될 때 비어 있지 않지만 항상 비어 있습니다.

anybode도이 문제에 직면 해 있습니까? 누군가 제발 뭔가를 제안 할 수 있습니까?

사전

+0

하여 검색 중 코드에서 당신은 PasswordVault 클래스의 새로운 객체를 만들 수 있습니다. PasswordVault 객체를 전역으로 만든 다음 값을 설정하고 검색하십시오. – Mainak

+0

@Mainak, 내 질문에 쓴 것처럼, 내 래퍼 클래스 내부 정적 필드로 사용하려고했습니다 - 정말 중요하지 않습니다. 또한 올바른 'Vault'개체가 있습니다. 자격 증명을 검색 할 수 있습니다. 문제는 내부 자격 증명 개체 로그인이 존재한다는 것입니다 (실제로 저장된 내용). 그러나 암호는 비어 있습니다. 나는 그것을 위해 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 vault = new PasswordVault(); 
vault.Add(new PasswordCredential(key, login, password)); 
var pass = vault.Retrieve(key, login); 
Debug.WriteLine(pass.Password); 
+0

정말 고마워요. 지금 정말로 작동합니다! 너는 내 하루를 보냈다 :) – Andrew