我是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
的值。
答案 0 :(得分:0)
在iOS
打开Entitlements.plist文件,并确保已选中“启用钥匙串访问组”。还要确保在Project-> Options-> iOS Bundle Signing中,在iPhoneSimulator平台的自定义权利中选择Entitlements.plist。
在Android
要求使用前由应用程序设置密码。
SecureStorageImplementation.StoragePassword = "Your Password";
有关更多详细信息,您可以访问here