2016-12-23 6 views
3

У меня есть WebApi 2 с использованием ASP.Net Identity. Я хочу использовать это в приложении Xamarin, я изо всех сил пытаюсь найти правильный ответ на этот вопрос:Хранение маркера доступа и токена обновления на Xamarin

Как я могу хранить токен доступа и токен обновления на устройстве с помощью Xamarin, аналогичный Cookies или сеансовому состоянию в ASP.NET?

Я могу сделать звонок, чтобы получить эти жетоны, но я новичок в Xamarin и не могу решить, как сохранить их на устройстве, поэтому пользователю не нужно постоянно входить в систему.

Мишень устройство для Windows, IOS и Android

+0

Использовать настройки Джеймса плагин https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/Settings –

+0

Кто-нибудь это понял? – Seb

ответ

1

XLabs .Platform имеет интерфейс ISecureStorage и реализацию для IOS/Droid/WP8 с носителями зашифрованных хранилищами.
Также вы можете взглянуть на Akavache SecureBlobCache.
Каждый раз, когда Токен доступа Expired, использовать токен обновления, чтобы получить новый маркер доступа (Может быть, новый токен обновления) Затем замените их ...

0

Мы можем использовать Xamarin.Auth для хранения данных в хранилище учетной записи, как показано ниже.

Запоминание Информация об учетной записи Информация

public void SaveCredentials (string userName, string password) 
{ 
    if (!string.IsNullOrWhiteSpace (userName) && !string.IsNullOrWhiteSpace (password)) { 
    Account account = new Account { 
     Username = userName 
    }; 
    account.Properties.Add ("Password", password); 
    AccountStore.Create().Save (account, App.AppName); 
    } 
} 

Получение счета

public string UserName { 
    get { 
    var account = AccountStore.Create().FindAccountsForService (App.AppName).FirstOrDefault(); 
    return (account != null) ? account.Username : null; 
    } 
} 

public string Password { 
    get { 
    var account = AccountStore.Create().FindAccountsForService (App.AppName).FirstOrDefault(); 
    return (account != null) ? account.Properties ["Password"] : null; 
    } 
}