Asp.net web api 在Xamarin上存储访问令牌和刷新令牌

Asp.net web api 在Xamarin上存储访问令牌和刷新令牌,asp.net-web-api,xamarin,local-storage,oauth2,Asp.net Web Api,Xamarin,Local Storage,Oauth2,我有一个使用ASP.Net标识的WebApi 2。我想在Xamarin应用程序中使用它,我正在努力找到这个问题的直接答案: 如何使用Xamarin在设备上存储访问令牌和刷新令牌,类似于ASP.NET中的Cookie或会话状态 我可以打电话获取这些令牌,但我是Xamarin的新手,不知道如何将它们保存在设备上,因此用户不需要经常登录 目标设备是Windows、iOS和Android。平台具有iSecure存储接口和iOS/Droid/WP8的实现,并带有本机加密存储。 您还可以查看SecureBl

我有一个使用ASP.Net标识的WebApi 2。我想在Xamarin应用程序中使用它,我正在努力找到这个问题的直接答案:

如何使用Xamarin在设备上存储访问令牌和刷新令牌,类似于ASP.NET中的Cookie或会话状态

我可以打电话获取这些令牌,但我是Xamarin的新手,不知道如何将它们保存在设备上,因此用户不需要经常登录

目标设备是Windows、iOS和Android

。平台具有iSecure存储接口和iOS/Droid/WP8的实现,并带有本机加密存储。
您还可以查看SecureBlobCache。

每次访问令牌过期时,使用刷新令牌获得新的访问令牌(可能是新的刷新令牌),然后替换它们…

我们可以使用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;
  }
}
检索帐户信息

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;
  }
}

使用James的设置插件有人发现了吗?