Xamarin.Forms SecureStorage插件不起作用

时间:2018-11-06 03:42:13

标签: xamarin.forms token

我是Xamarin.Forms的新手,我正在寻找一种在App中存储数据的方式,例如:令牌,用户名。现在,我正在尝试使用SecureStorgae,但是功能getValue不起作用,我也不知道为什么。

我的代码:

public async Task CheckLogin(string usernameString, string passwordString)
    {
        using (var client = new HttpClient())
        {
            string url = "myUrl";
            var json = JsonConvert.SerializeObject(new { username = usernameString, password=passwordString });
            HttpContent content = new StringContent(json,Encoding.UTF8, "application/json");
            var response = await client.PostAsync(url,content);

            if (response.IsSuccessStatusCode)
            {
                var rs = JsonConvert.DeserializeObject<LoginResult>(response.Content.ReadAsStringAsync().Result);
                var token = rs.result.token;

                CrossSecureStorage.Current.SetValue("SessionToken",token);
                CrossSecureStorage.Current.SetValue("Username", rs.result.userName);
                var token1 = CrossSecureStorage.Current.GetValue("SessionToken");
                await Navigation.PushAsync(new Home());
            }

        }
    }

运行我的应用程序时,无法获得SessionToken的值。

1 个答案:

答案 0 :(得分:0)

  

在iOS

打开Entitlements.plist文件,并确保已选中“启用钥匙串访问组”。还要确保在Project-> Options-> iOS Bundle Signing中,在iPhoneSimulator平台的自定义权利中选择Entitlements.plist。 enter image description here

  

在Android

要求使用前由应用程序设置密码。

SecureStorageImplementation.StoragePassword = "Your Password";

有关更多详细信息,您可以访问here