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.Android、Xamarin.IoS 和 Xamarin.Win 的简单总和吗?