C#, Xamarin.Essentials Безопасное хранилище
Изучив варианты сохранения токена JWT, я выбрал безопасное хранилище Xamarin.Essentials.
Проблема в том, что мое приложение всегда ломается при попытке сохранить токен в хранилище со следующей ошибкой:
"Исключение System.AggregateException"
Детали следующие:
"Xamarin.Essentials.NotImplementedInReferenceAssemblyException
Эта функциональность не реализована в переносной версии этой сборки. Вы должны ссылаться на пакет NuGet из вашего основного проекта приложения, чтобы ссылаться на реализацию для конкретной платформы. "
Это ясно означает, что в установке пакета nuget что-то пошло не так, поэтому я:
- Деинсталлировал и переустанавливал пакет xamarin.essentials.
- Обновлен.Netstandard до 2.0, думая, что 1.6 не совместим.
- Проверяется, есть ли ссылка на файл в файле csproj.
Итак, ничего.
На данный момент у меня есть TokenStorageController со следующими строками кодов:
public bool SaveToken(string token)
{
if(token != null)
{
Preferences.Set(key, token);
if(Preferences.ContainsKey(key))
{
return true;
}
}
return false;
}
Класс RestService, из которого вызывается контроллер, выглядит следующим образом:
//await SecureStorage.SetAsync("oauth_token", "booommmmmm"); // changed to this simply to check if my controller was the problem
TokenStorageController tokenStorage = new TokenStorageController();
await tokenStorage.SaveToken("boommmmm"); // where I get an error
А вот точная строка, где происходит ошибка:
var loginTask = Task.Run(() => restService.LoginAsync(user)).Result;
Если решений нет, я удалю все пакеты и переустановлю их все. ПО ОДНОМУ! Клянусь, я сделаю это! И если решений не будет вообще, я буду хранить токен в SQL, поскольку у меня уже есть контроллер для этого.
Я Xamarin и C# noob, так что терпите меня, пожалуйста.
К вашему сведению: я использую клиент macOS для тестирования, так как причиной может быть то, что Secure Storage не работает для приложений macOS.
Спасибо!
1 ответ
Xamarin.Mac
В настоящее время не поддерживается платформа, только iOS, Android, UWP.
Код доступен для просмотра по адресу: