在回顾了有关保存JWT令牌的选项之后,我选择了Xamarin.Essentials安全存储。
问题是,当试图在内存中保存令牌时,我的应用程序总是会中断,出现以下错误:
"System.AggregateException已被抛出“
详情如下:
"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类如下所示:
//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中,因为我已经有一个控制器可以这样做。
我是扎马林和C#的菜鸟,所以请容忍我。
FYI:我使用macOS客户端进行测试,原因可能是SecureStorage不适用于macOS应用程序。
谢谢!
发布于 2018-05-24 05:18:47
Xamarin.Mac目前不是一个受支持的平台,只有iOS,安卓,UWP。
该守则可在以下网址查阅:
https://stackoverflow.com/questions/50500885
复制相似问题