【发布时间】:2018-09-23 11:24:30
【问题描述】:
我在 xamarin c# 中编写了以下代码,以将敏感数据存储在 iPhone 钥匙串中。
void StoreKeysInKeychain(string key, string value)
{
var user = Settings.CurrentUser;
var userstring = JsonConvert.SerializeObject(user);
if (value == "logout")
{
userstring = string.Empty;
};
var record = new SecRecord(SecKind.GenericPassword)
{
ValueData = NSData.FromString(userstring),
Generic = NSData.FromString(key),
Label="Sanket",
};
SecKeyChain.Remove(record);
SecKeyChain.Add(record);
}
SecRecord GetRecordsFromKeychain(string key)
{
SecStatusCode res;
var rec = new SecRecord(SecKind.GenericPassword)
{
Generic = NSData.FromString(key)
};
return SecKeyChain.QueryAsRecord(rec, out res);
}
在另一个 MAC 模拟器上使用相同的代码进行了测试,它在那里工作,但在我的 MAC 上没有。
两个 MAC 的 iOS 10.13.3 和模拟器版本 11.2 相同。 即使我尝试更改模拟器,但它不存储数据。
我试图浏览以 sqlite 格式存储的钥匙串内容。 参考下面的链接如何浏览存储在模拟器钥匙串中的内容。
链接到:Browse Keychain Data stored in Simulator
我尝试重置模拟器的内容,但没有成功。
任何帮助将不胜感激。 谢谢 :(
【问题讨论】:
标签: c# ios xamarin xamarin.forms xamarin.ios