2016-09-22 1 views
3

내가 Xamarin의 AccountStore에서 뭔가를 제거하는 나의 방법을 호출 할 때마다, 그것을 삭제하고 그 목록에 하나 더 적은 것을 말합니다. 아래의 메서드는 먼저 종속성 서비스에서 호출됩니다. Xamarin.Auth AccountStore가 값을 삭제하지 않습니까?

public void DeleteSecureValue(string appName, string key) 
{ 
    var account = AccountStore.Create().FindAccountsForService(appName).FirstOrDefault(); 
    if (account.Properties.ContainsKey(key)) 
     account.Properties.Remove(key); 

    var props = account.Properties; 
    // when debugging, props doesn't contain a value for passcode 
} 

Xamarin.Forms.DependencyService.Get<IStorageHandler>().DeleteSecureValue(GlobalConstants.APP_NAME, "passcode"); 

var account = AccountStore.Create().FindAccountsForService(GlobalConstants.APP_NAME).FirstOrDefault(); 
var props = account.Properties; 
// when debugging, props now has a value for passcode when it shouldn't 

이유는 암호의 값은 돌아올 것입니까?

답변

5

메모리에있는 사전을 DeleteSecureValue으로 조작하고 있습니다. 변경 사항을 저장 장치에 다시 작성해야합니다.

public void DeleteSecureValue(string appName, string key) 
{ 
    var store = AccountStore.Create(); 
    var account = AccountStore.Create().FindAccountsForService(appName).FirstOrDefault(); 
    if (account.Properties.ContainsKey(key)) 
    { 
     account.Properties.Remove(key); 
     store.Save(account, appName); 
    } 
} 
관련 문제