C#,Xamarin.Essentials 安全存储

C# , Xamarin.Essentials Secure Storage

在查看有关保存 JWT 令牌的选项后,我选择了 Xamarin.Essentials 安全存储。

问题是我的应用程序在尝试在存储中保存令牌时总是中断并出现以下错误:

"System.AggregateException has been thrown"

详情如下:

"Xamarin.Essentials.NotImplementedInReferenceAssemblyException

此程序集的便携版本中未实现此功能。您应该从主应用程序项目中引用 NuGet 包,以便引用特定于平台的实现。"

这显然意味着在安装 nuget 包时出了点问题,所以我:

等等,没有。

目前,我有一个 TokenStorageController,其中包含以下代码行:

    public bool SaveToken(string token)
    {
        if(token != null)
        {
            Preferences.Set(key, token);

            if(Preferences.ContainsKey(key))
            {
                return true;
            }
        }    
        return false;
    }

调用控制器的 RestService class 如下所示:

        //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# 菜鸟,所以请多多包涵。

仅供参考:我正在使用 macOS 客户端进行测试,原因可能是 SecureStorage 不适用于 macOS 应用程序。

谢谢!

Xamarin.Mac 目前不是受支持的平台,只有 iOS、Android、UWP。

可在以下位置查看代码: