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.

Код доступен для просмотра по адресу:

Другие вопросы по тегам