我有一个使用ASP.Net Identity的WebApi 2。我想在Xamarin应用程序中使用它,我很难找到这个问题的直接答案:
如何使用Xamarin在设备上存储访问令牌和刷新令牌,类似于ASP.NET中的Cookie或会话状态?
我可以拨打电话获取这些令牌,但我是Xamarin的新手,无法解决如何将它们保存在设备上,因此用户无需经常登录。
目标设备是Windows,iOS和Android
答案 0 :(得分:1)
XLabs。平台具有ISecureStorage接口和iOS / Droid / WP8实现,带有本机加密存储。
您还可以查看Akavache SecureBlobCache
每次访问令牌过期时,使用刷新令牌获取新的访问权限(也许是新刷新TOKE)然后替换它们......
答案 1 :(得分:0)
我们可以使用 Xamarin.Auth 将数据存储在帐户商店中,如下所示。
存储帐户信息
public void SaveCredentials (string userName, string password)
{
if (!string.IsNullOrWhiteSpace (userName) && !string.IsNullOrWhiteSpace (password)) {
Account account = new Account {
Username = userName
};
account.Properties.Add ("Password", password);
AccountStore.Create ().Save (account, App.AppName);
}
}
检索帐户信息
public string UserName {
get {
var account = AccountStore.Create ().FindAccountsForService (App.AppName).FirstOrDefault ();
return (account != null) ? account.Username : null;
}
}
public string Password {
get {
var account = AccountStore.Create ().FindAccountsForService (App.AppName).FirstOrDefault ();
return (account != null) ? account.Properties ["Password"] : null;
}
}