Xamarin.Forms 会话管理

Posted

技术标签:

【中文标题】Xamarin.Forms 会话管理【英文标题】:Xamarin.Forms Session Management 【发布时间】:2017-07-24 09:16:03 【问题描述】:

我正在尝试使用 Xamarin.Forms 开发一个虚拟应用程序,我主要关注 UWP。 我有这个应用程序的登录功能,我需要管理会话。我正在使用基本的 Web 服务方法进行登录,它获取用户名和密码作为参数并返回访问令牌。我正在将此访问令牌用于此应用程序的 CRUD 操作。这就是我存储此访问令牌的方式。

Application.Current.Properties ["access_token"] = token.access_token;

因为我是 Xamarin 的新手,所以我很难理解会话管理。我将如何管理会话?会话何时到期以及如何到期?可能是什么安全问题?如何正确注销用户?

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您可以使用Settings Plugin for Xamarin And Windows。

此插件将特定属性直接保存到每个平台的原生设置 API(NSUserDefaults、SharedPreferences 等)。这确保了每个应用程序最快、最安全和最可靠的创建和编辑设置。此外,它适用于任何 Xamarin 应用程序,而不仅仅是 Xamarin.Forms。

从 Nuget 使用它 - Settings Plugin for Xamarin and Windows 3.0.1

查找文档here。

private static ISettings AppSettings =>
    CrossSettings.Current;

public static string AccessToken

  get => AppSettings.GetValueOrDefault(nameof(AccessToken), string.Empty); 
  set => AppSettings.AddOrUpdateValue(nameof(AccessToken), value); 

会话在服务器而不是客户端进行管理。您将获得一个过期时间,可能还有来自服务器的刷新令牌 URL。您可以使令牌过期并在过期时间过后将其删除。

【讨论】:

感谢您的回答,但我想知道移动应用程序的会话管理逻辑。 会话管理是服务器的职责,而不是客户端。客户端只使用会话,只要它在服务器中有效。 这里的答案只涉及令牌的存储。移动应用程序需要管理会话状态、刷新令牌或在令牌过期时注销用户。 我认为这不是 OP 问题或范围的一部分。如果您有其他问题,请发布一个。

以上是关于Xamarin.Forms 会话管理的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms教程Android SDK工具下载安装

Xamarin.forms(或)xamarin.ios/xamarin.android(或)本机

Xamarin.Forms 和 Xamarin Native 有啥区别? [关闭]

Xamarin.Forms 手势密码实现

Xamarin.Forms:如何在 Xamarin.Forms 跨平台项目中开发具有蓝牙连接的应用程序?

Xamarin.Forms 是 Xamarin.Android、Xamarin.IoS 和 Xamarin.Win 的简单总和吗?