UPDATE : 현대/지하철 애플 리케이션이 서로의 물건에 파고 제한하는 동안, 바탕 화면 응용 프로그램이 API를 통해 저장된 모든 데이터에 제한없이 액세스 할 수 있음에 유의하십시오. 이것을 설명하는 코드가 포함 된 http://www.hanselman.com/blog/SavingAndRetrievingBrowserAndOtherPasswords.aspx을 참조하십시오.
Win8 당신을 위해 모든 어려운 문제를 돌봐 위해 설계 PasswordVault라는 새로운 API가 있습니다. 사용하기 쉽고 안전하며 사용자가 기계간에 로밍하도록 구성하여 한 번만 자격 증명을 입력하면됩니다. OAuth 토큰을 성공적으로 사용했습니다.
자격 증명을 가져 오는 중 (WinRT가 제기하는 바보 같은 예외가 있음을 유의하십시오.그들은 정말) 널 (null)을 반환해야합니다 :
const string VAULT_RESOURCE = "[My App] Credentials";
string UserName { get; set; };
string Password { get; set; };
var vault = new PasswordVault();
try
{
var creds = vault.FindAllByResource(VAULT_RESOURCE).FirstOrDefault();
if (creds != null)
{
UserName = creds.UserName;
Password = vault.Retrieve(VAULT_RESOURCE, UserName).Password;
}
}
catch(COMException)
{
// this exception likely means that no credentials have been stored
}
저장 자격 증명 :
vault.Add(new PasswordCredential(VAULT_RESOURCE, UserName, Password));
제거 자격 증명 (사용자가 앱에서 로그 아웃 버튼을 클릭 할 때) :
vault.Remove(_vault.Retrieve(VAULT_RESOURCE, UserName));
는 공격자가 누구입니까 당신의 위협 모델에서? 시스템 관리자 또는 권한이없는 불량 소프트웨어? – CodesInChaos
** 자신의 보안 시스템을 개발하지 않는 것이 좋습니다 ** Windows에 비밀번호를 저장하려면 _Credential Manager_ (Win7 이후)가 있습니다. _WinRt_는 ['Windows.Security.Credentials'] (http://msdn.microsoft.com/library/windows/apps/windows.security.credentials.aspx) 네임 스페이스에 상응하는 API를 가지고 있지만 _it는 아직 문서화가 잘되어 있지 않습니다 ._ – ordag