C #, Xamarin.Essentials Безопасное хранилище - PullRequest
0 голосов
/ 24 мая 2018

После проверки параметров сохранения токена JWT я выбрал безопасное хранилище Xamarin.Essentials.

Проблема в том, что мое приложение всегда ломается при попытке сохранить токен в хранилище со следующей ошибкой:

«Исключение System.AggregateException было сгенерировано»

Ниже приведены подробности:

«Xamarin.Essentials.NotImplementedInReferenceAssemblyException

Эта функция не реализована в переносной версииэтой сборки. Вы должны ссылаться на пакет NuGet из вашего основного проекта приложения, чтобы ссылаться на реализацию, специфичную для платформы. "

Это явно означает, что что-то пошло не так в установке пакета nuget, поэтому я:

  • Деинсталлировал и переустанавливал пакет xamarin.essentials.
  • Обновлен. Не соответствует стандарту 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 для тестирования, поскольку причина может заключаться в том, что SecureStorage не работает для приложений MacOS.

Спасибо!

1 Ответ

0 голосов
/ 24 мая 2018

Xamarin.Mac в настоящее время не поддерживается платформой, только iOS, Android, UWP.

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

...